【发布时间】:2014-05-26 18:58:37
【问题描述】:
据我所知,VS 2013 出现了一个简单的 WPF 应用程序,可以将 SystemColors 用于各种 UI 元素。例如,当将鼠标悬停在选项卡控件中未选择的选项卡上时,该选项卡似乎采用 MenuHighlight 系统颜色,但应用了 alpha 混合。
如果我使用新的模板/触发器/等重新设置控件的样式,如何像窗口上的其他控件一样为其行为着色?我可以获得系统颜色,但这并没有显示任何使用的 alpha 级别。
我错了吗?如何在不硬编码任何值的情况下实现标准机器一致外观的目标?
更新:我已经进行了一些挖掘,这就是我自己找到的。
该图在顶部显示悬停模式下的标准 WPF MenuItem,然后是选择的 SystemColors 等,最后在底部 #3D26A0DA。
该值是我通过转储库存 MenuItem 的 ControlTemplate 发现的硬编码值。如您所见,这是与顶部菜单匹配的颜色(并且不对应于任何 SystemColor),我怀疑它具有 alpha 值。
我真的不敢相信我必须在自己的应用程序中硬编码“#3D26A0DA”以适应“开箱即用”的 WPF 控件的外观。我可能是 WPF 的新手,但我从 1.1 版开始就一直在编写 Windows,我只知道这是不对的。那么它在哪里呢?它是某个地方的全球资源吗?
【问题讨论】:
-
您是如何确定 MenuHightlight 是“alpha 混合”的?我将其观察为#ff3399ff,它是完整的 alpha。
-
只是通过查看 - 我已经进行了更多研究并确切地发现了价值。请查看重新编辑的问题。