fluentribbon / Fluent.Ribbon

WPF Ribbon control like in Office
http://fluentribbon.github.io
MIT License
2.55k stars 516 forks source link

High Contrast #1018

Open ClemensInBerlin opened 2 years ago

ClemensInBerlin commented 2 years ago

Labels in highlighted elements in high contrast are badly readable.

Desert

Currently there is no highlight color for lables.

Environment

batzen commented 2 years ago

Which theme are you using? Fluent.Ribbon does not ship any high contast themes.

ClemensInBerlin commented 2 years ago

We are using custome themes and one theme is for High Contrast. In this theme we use System colors (i.e: SystemColors.ActiveCaptionColor). We use a registry hooks and a resource dictionary inspired by the SkinResourceDictionary from Michael's Coding Spot.

batzen commented 2 years ago

Ok. Currently you have to do this yourself by using a custom style and change the foreground inside a style trigger. The base style key for the Button is RibbonButtonStyle, but you will most likely have to apply that to all controls which is unfortunate and might also require changes to the templates of some control, which makes it even more work. So i would advise against doing so and wait for a proper solution from my side.

The only workaround i can offer you right now is to not use opaque colors in places where i causes issues. You can either brighten those colors a bit or add some level of transparency.

In a future version the foreground color will be automatically calculated and set to a value that is best visible on the current background. I am currently working on getting this to work, then have to apply that to all controls and make sure i don't introduce any performance issues by doing so.

batzen commented 2 years ago

It would also be nice if you could share your current high contrast theme (at least the example from the screenshot) so that i can make sure that everything works as expected when i finish my implementation of calculated foreground colors.

batzen commented 2 years ago

ping @ClemensInBerlin

ClemensInBerlin commented 2 years ago

Sorry, we are just finishing the next release of our application. We create an own resource dictionary for the high contrast. We figured out that in some cases the highlight color is too dark or too bright. Therefor we have six brushes we have own colors and do not use the system colors. Here is our system dictionary HighContrastFluentStyle.zip