有没有办法让Windows 10中的WPF应用程序不那么"丑陋"?

Mas*_*r_T 5 c# wpf windows-10

所以,我刚刚切换到Windows 10,我注意到我所有的桌面WPF应用程序都明显比在Win7/Win8上更加"丑陋".

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

  • 一切看起来像Windows 95,所有灰色都没有任何阴影,几乎就像有一个自定义主题(或缺少默认主题或其他东西)
  • 很多残疾人的元素都没有"变灰"(见下图)
  • 残疾人士button不会被夷为平地(再看看图片)
  • ListView 在mouseOver上不突出显示项目
  • ProgressBar在XP之前看起来有"蓝色片段"
  • 等等

例

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

Mas*_*r_T 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>
Run Code Online (Sandbox Code Playgroud)

现在看起来就像在 Windows 8 中一样。请注意,如果您想要 Windows 7 的外观,也可以使用而Aero不是Aero2(当然还要更改引用的 dll!),但我认为Aero2在 Win10 上看起来更加“原生”。

编辑: 经过进一步测试,事实证明这并不是 100% 完美,尽管它已经足够接近了。例如:禁用的文本框不会变灰,ListViews似乎根本不受影响,它们看起来仍然像是从Windows 98的屁股里爬出来的......如果有人知道如何让Aero2风格粘在它们上那就太好了