有没有办法让 WPF 应用程序少 "ugly" in Windows 10?
Is there a way to make WPF application less "ugly" in Windows 10?
所以,我刚切换到 Windows 10,我注意到我所有的桌面 WPF
应用程序明显 "uglier" 比 Win7/Win8.
我知道这听起来 subjective/pointless,但让我说得更准确些。这里有一些 objective 退化 UI 的 usability/clarity:
的例子
- 一切看起来都像 Windows95,全是灰色,没有任何阴影,几乎就像有一个自定义主题(或者缺少默认主题或其他东西)
- 很多禁用的元素没有得到"grayed out"(见下图)
- 禁用的
button
s 不会变平(再次参见图片)
ListView
项在鼠标悬停时未突出显示
ProgressBar
s 具有 "blue segments" XP 之前的外观
- 等等
- 这是 "normal",即:这是新的默认 WPF 主题吗?
- 如果是这样,我可以更改吗?真的很糟糕
- 如果没有,我错过了什么?
编辑:
在另一台机器上测试后,发现问题与WPF或Windows无关。
只是不要对您在互联网上找到的 win10 应用任何调整来恢复 windows 边框上的着色。它搞乱了 WPF 主题引擎。
抱歉浪费你们的时间。
好吧,我找到了解决方法(感谢 gix 为我指明了正确的方向):
第一步:在您的项目中引用 PresentationFramework.Aero2
程序集
第二步:将以下内容添加到您的 App.xaml
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero2;component/themes/Aero2.NormalColor.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
现在它看起来像在 Windows 8 中一样。请注意,如果您想要 Windows 7 外观,也可以使用 Aero
而不是 Aero2
(也当然要更改引用的 dll!),但我认为 Aero2
在 Win10 上看起来更 "native"。
编辑:
经过进一步测试,结果证明这不是 100% 完美,尽管它已经足够接近了。例如:禁用的文本框没有变灰,ListView
s 似乎根本不受影响,它们看起来仍然像是从 Windows 98 的屁股里爬出来的……如果有人知道的话如何让 Aero2 风格也坚持他们,那就太好了
所以,我刚切换到 Windows 10,我注意到我所有的桌面 WPF
应用程序明显 "uglier" 比 Win7/Win8.
我知道这听起来 subjective/pointless,但让我说得更准确些。这里有一些 objective 退化 UI 的 usability/clarity:
的例子- 一切看起来都像 Windows95,全是灰色,没有任何阴影,几乎就像有一个自定义主题(或者缺少默认主题或其他东西)
- 很多禁用的元素没有得到"grayed out"(见下图)
- 禁用的
button
s 不会变平(再次参见图片) ListView
项在鼠标悬停时未突出显示ProgressBar
s 具有 "blue segments" XP 之前的外观- 等等
- 这是 "normal",即:这是新的默认 WPF 主题吗?
- 如果是这样,我可以更改吗?真的很糟糕
- 如果没有,我错过了什么?
编辑:
在另一台机器上测试后,发现问题与WPF或Windows无关。
只是不要对您在互联网上找到的 win10 应用任何调整来恢复 windows 边框上的着色。它搞乱了 WPF 主题引擎。
抱歉浪费你们的时间。
好吧,我找到了解决方法(感谢 gix 为我指明了正确的方向):
第一步:在您的项目中引用 PresentationFramework.Aero2
程序集
第二步:将以下内容添加到您的 App.xaml
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero2;component/themes/Aero2.NormalColor.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
现在它看起来像在 Windows 8 中一样。请注意,如果您想要 Windows 7 外观,也可以使用 Aero
而不是 Aero2
(也当然要更改引用的 dll!),但我认为 Aero2
在 Win10 上看起来更 "native"。
编辑:
经过进一步测试,结果证明这不是 100% 完美,尽管它已经足够接近了。例如:禁用的文本框没有变灰,ListView
s 似乎根本不受影响,它们看起来仍然像是从 Windows 98 的屁股里爬出来的……如果有人知道的话如何让 Aero2 风格也坚持他们,那就太好了