【发布时间】:2019-09-02 07:12:17
【问题描述】:
我们正在使用RibbonFramework,它只是 Windows 功能区框架的 Delphi 包装器。一切正常,直到我们开始升级到 Windows 10,颜色设置停止工作。
我们使用BackgroundColor 属性,最终设置UI_PKEY_GlobalBackgroundColor 来更改背景颜色。不幸的是,它只能部分起作用,它永远不会设置正确的颜色,而是带有所选颜色暗示的灰色调。在这种情况下,设置绿色而不是紫色只是一个小细节。
我找不到问题出在哪里,是 Windows 10 颜色设置不起作用还是不再受支持,或者我做错了什么。
您可以在下面看到相同的应用程序TextPad demo 在不同版本的 Windows 上的样子,除了 Windows 10 之外的所有版本都正常工作。我在几十台不同设置的不同电脑上测试了它,结果总是一样的。
Windows 7 (Windows Server 2008)
Windows 8 (Windows Server 2012)
Windows 10 - 内部版本 17763
所有可能的颜色都设置为纯红色
【问题讨论】:
-
我现在没有可用的 Windows 10 机器,但我刚刚开始考虑 Windows 主题设置。你们有相同(或相似)的设置吗?
-
@TomBrunberg 是的,它是为所有机器全局设置的,它似乎没有任何效果。在 Colorize 页面的预览模式下的 Ribbon Designer 中,您可以设置任何颜色,在 Win 10 上它始终设置灰色阴影,只有应用程序菜单的颜色在变化,甚至是错误的。
-
根据有关 Windows 10 功能区控件的文档,使用的是
Hue, Saturation, Brightness (HSB) color model而不是RGB color model。基于你得到错误颜色的事实,我假设你的应用程序仍在使用RGB based color model,特别是因为所有其他 Delphi 控件都依赖于RGB color model。所以我建议你检查Convert RGB to HSB -
@SilverWarior 我很清楚这一点,糟糕的颜色转换可能是我看到绿色而不是紫色的原因,但它仍然无法解释为什么无法更改背景颜色。所有功能区颜色设置为纯红色i.stack.imgur.com/fdkN1.png
-
@JerryDodge 没有任何颜色,看起来就像你说的那样,只有灰色和蓝色菜单。我还认为支持已经停止,但如果这是真的,我希望在某个地方找到它的提及。我发现的所有资源都表明没有任何改变,它应该仍然有效。
标签: windows delphi winapi ribbon delphi-10.2-tokyo