wixtoolset / issues

WiX Toolset Issues Tracker
http://wixtoolset.org/
129 stars 36 forks source link

Std bootstrapper checkbox text doesn't draw with correct font color. #4693

Open wixbot opened 9 years ago

wixbot commented 9 years ago

When using the std bootstrapper with a theme that contains a checkbox that uses a font with a specific foreground color, that color is ignored and the Windows theme color is used instead (typically black).

It seems that the colors set while handling WM_CTLCOLORSTATIC aren't honored unless the checkbox window has its theme disabled first by calling SetWindowTheme. Calling SetWindowTheme on the checkbox fixes the color being wrong, but also causes the checkbox to no longer render with the pretty Windows theme. I think that is acceptable given the text color being wrong is a much bigger issue, but it might be worth putting an additional option on the checkbox to enable/disable the Windows theme.

Originally opened by brian

wixbot commented 9 years ago

Area changed from burn to sdk Release changed from v3.9 to v3.x

nutkizzle commented 2 years ago

Case where this bug is being an annoyance.

EULA checkbox uses a font id with Foreground="000000" (black) and Background="ffffff" (white).

In Windows high contrast mode, background remains ffffff (this will never change from the color specified in the font id). Foreground color goes from 000000 to ffffff probably because it's set to whatever the Windows theme is.

You end up with white text on white background for your EULA checkbox.

Only way to ever get the font to show up on windows high contrast mode is to set background to an off color such that black and white text will always contrast against it. Doing this however will make the checkbox stick out like a sore thumb.

nutkizzle commented 2 years ago

I believe others have pointed out in stackoverflow that the alternative is to have checkbox display no text and have separate Text field located to the side of the checkbox to fall in line with whatever font choices they want. This leave the user with the inconvenience of having to actually click on the checkbox as opposed to being able to click on the text to check the box.