gpt4 book ai didi

.net - WPF 控件和 SystemColors - Alpha 混合?

转载 作者:可可西里 更新时间:2023-11-01 10:46:18 26 4
gpt4 key购买 nike

据我所知,一个在 VS 2013 中构建的简单 WPF 应用似乎为各种 UI 元素使用 SystemColors。例如,当鼠标悬停在选项卡控件中未选中的选项卡上时,该选项卡似乎采用 MenuHighlight 系统颜色,但是应用了 alpha 混合。

如果我使用新的模板/触发器/等重新设置控件的样式,我如何像窗口上的其他控件一样为其行为着色?我可以获得系统颜色,但不会显示使用的任何 alpha 级别。

我错了吗?如何在不对任何值进行硬编码的情况下实现拥有标准机器一致外观的目标?

更新:我做了一些挖掘,这是我为自己找到的。

Various colours achievable by different means

该图在顶部显示了处于悬停模式的标准 WPF MenuItem,然后是选择的 SystemColors 等,最后是底部 #3D26A0DA。

我发现该值是通过转储现有 MenuItem 的 ControlTemplate 进行硬编码的。如您所见,这是与顶部菜单匹配的颜色(并且不对应于任何 SystemColor),正如我所怀疑的那样具有 alpha 值。

我真的不敢相信我必须在我自己的应用程序中对“#3D26A0DA”进行硬编码以适应“开箱即用”的 WPF 控件的外观。我可能是 WPF 的新手,但我从 1.1 版开始就开始编写 Windows 程序,我只知道那是不对的。那么它在哪里呢?它是某处的全局资源吗?

最佳答案

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

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

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

希望对你有帮助

关于.net - WPF 控件和 SystemColors - Alpha 混合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23876235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com