Search code examples
windowsdelphiwinapiribbondelphi-10.2-tokyo

How to change Ribbon colors on Windows 10


We are using RibbonFramework which is just Delphi wrapper for the Windows Ribbon Framework. Everything worked fine until we started upgrading to Windows 10, where the color settings stopped working.

We use the BackgroundColor property, which eventually sets UI_PKEY_GlobalBackgroundColor to change background color. Unfortunately, it works only partially, it never sets the correct color, but a gray tint with a hint of the selected color. The fact that in this case the green instead of purple is set is just a small detail.

I can't find where the problem might be whether the Windows 10 color settings is not working or it is no longer supported, or I'm doing something wrong.

Below you can see how the same application TextPad demo looks like on different versions of Windows, all except Windows 10 are working properly. I tested it on dozens of different computers with different settings and the result was always the same.

Windows 7 (Windows Server 2008)

enter image description here

Windows 8 (Windows Server 2012)

enter image description here

Windows 10 - build 17763

enter image description here

With all possible colors set to pure red

enter image description here


Solution

  • It's a bug in the system that appeared in the Windows 10 v.1809 (October 2018 Update). So far, there seems to be nothing to do about it and no way around it until they fix it themselves.

    It has already been reported on their Gtihub for MicrosoftDocs and also on the Windows Desktop Ribbon Developement forum.