有没有办法让WPF应用程序更少"丑陋"在Windows 10中?

时间:2015-08-01 10:35:54

标签: c# wpf windows-10

所以,我刚刚切换到Windows 10,我注意到我所有的桌面WPF应用程序都明显地" uglier"比他们在Win7 / Win8上的地方。

我知道这听起来主观/毫无意义,但让我更精确。以下是UI的可用性/清晰度的客观降级的一些示例:

  • 一切看起来都像Windows 95,全灰色,没有任何阴影,几乎就像是自定义主题(或缺少默认主题或其他东西)
  • 许多残疾人的元素没有得到灰色" (见下图)
  • 禁用button s不会变平(再次参见图片)
  • ListView项目未在mouseOver上突出显示
  • ProgressBar有"蓝色部分" XP之前的样子

example

  1. 这是"正常",即:这是新的默认WPF主题吗?
  2. 如果是,我可以更改吗?这真的很糟糕
  3. 如果没有,我错过了什么?

1 个答案:

答案 0 :(得分:0)

修改

在另一台机器上测试后,发现问题与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外观(当然也改变引用的dll!),你也可以使用Aero而不是Aero2,但是我认为Aero2在Win10上看起来更“原生”。

修改 经过进一步的测试,结果证明这并非100%完美,尽管它足够接近。例如:禁用的文本框不会显示为灰色,ListView似乎根本没有受到影响,它们看起来仍然像是从Windows 98的屁股中爬出来...如果有人知道如何制作Aero2风格坚持它们也会很棒