【问题标题】:WPF Controls and SystemColors - Alpha Blend?WPF 控件和 SystemColors - Alpha 混合?
【发布时间】: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。
  • 只是通过查看 - 我已经进行了更多研究并确切地发现了价值。请查看重新编辑的问题。

标签: .net wpf windows xaml


【解决方案1】:

我最近也遇到了同样的问题,幸运的是一位同事解释说有一种更简单的方法可以访问所使用的系统颜色。

例如,可以使用 {DynamicResource {x:Static SystemColors.MenuHighlightBrushKey}} 访问 MenuHighlightBrush

这里是不同系统颜色参考的完整列表的链接http://msdn.microsoft.com/en-us/library/System.Windows.SystemColors(v=vs.110).aspx

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 2010-11-20
    相关资源
    最近更新 更多