据我所知,在VS 2013 中内置了一个简单的WPF应用程序,它看起来像一样将SystemColors用于各种UI元素。例如,当在选项卡控件中的未选定选项卡上盘旋时,该选项卡似乎具有MenuHighlight系统颜色,但应用了α混合选项卡。
如果我用一个新的模板/触发器/等等重新设置控件的样式,我如何像窗口上的其他控件一样对它的行为进行着色?我可以得到一个系统的颜色,但这并不显示任何阿尔法级别的使用。
我搞错了吗?如何实现在不对任何值进行硬编码的情况下具有标准的机器一致外观的目标?
更新:我做了一些调查,这是我自己发现的。

该图形显示标准的WPF MenuItem在悬停模式的顶部,然后选择SystemColors等,最后在底部#3D26A0DA。
这个值就是我通过抛售MenuItem的ControlTemplate发现的硬编码。正如您所看到的,这是与顶部菜单相匹配的颜色(与任何SystemColor不对应),正如我所怀疑的那样,它有一个alpha值。
我真的不敢相信我必须在我自己的应用程序中编写"#3D26A0DA“的硬代码,以适应WPF控件”开箱即用“的外观。我可能是WPF的新手,但我从1.1版开始就开始编写Windows程序,我只知道这是不对的。那它在哪?它是某个地方的全球资源吗?
发布于 2014-06-26 17:43:30
我最近遇到了同样的问题,幸运的是,一位同事解释说,有一种更容易的方法来访问所使用的系统颜色。
例如,可以通过使用MenuHighlightBrush访问{DynamicResource {x:静态SystemColors.MenuHighlightBrushKey}}。
以下是指向不同系统颜色引用http://msdn.microsoft.com/en-us/library/System.Windows.SystemColors(v=vs.110).aspx的完整列表的链接
希望这是有帮助的
https://stackoverflow.com/questions/23876235
复制相似问题