我正在玩覆盖系统颜色以改变我的应用程序的颜色外观。 新系统颜色在单独的资源字典中定义,如下所示:
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="#FF2D2D2D" />
并正确加载文件。 但是,如果我在“aero”和“classic”之间切换操作系统(Windows 7)的主题,则控件的外观会有所不同。例如。对于“经典”,应用程序的主要部分以深灰色(ControlBrushKey的颜色)出现(参见第一张图)。但是当我在“aero”处于活动状态时启动应用程序时,大多数应用程序仍然具有“中性”的空气动力外观(第二个数字)。 为什么会这样?无论选择什么主题,我都希望以相同的方式使用不同的SystemColors。
更改系统颜色是个好主意吗?或者你会推荐其他解决方案吗?
答案 0 :(得分:1)
问题是我不知道aero主题实际使用了哪些画笔。我将SystemColors的所有颜色都修改为深色,但没有区别。如何找出使用哪种刷子以及如何更换它们?
您可以查看默认模板的定义方式。下载dotPeek或其他一些.NET反编译器,并在PresentationFramework.*
中反编译C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\
程序集。
您会在Resources
- &gt; PresentationFramework.*.g.resources
- &gt; themes
下找到经过反编译的BAML资源。