[FEATURE] Add light theme#347
Conversation
…ilva/PerformanceMonitor into feature/AddLightTheme
…iew the theme when changed
erikdarlingdata
left a comment
There was a problem hiding this comment.
Thanks for the thorough work on this — the resource dictionary swap approach is the right pattern, and the theme files are well-structured with consistent resource keys across all three themes. Nice touch with the Cool Breeze / SSMS v22 variant.
One issue to address before merging:
Dashboard SettingsWindow does not revert theme on Cancel/close. The ColorThemeComboBox_Changed handler calls ThemeManager.Apply() immediately (live preview), but CancelButton_Click just closes the window without reverting to the original theme. If a user opens Settings, previews the Light theme, then cancels — the app stays in Light theme but the preference isn't saved, so the next restart snaps back to Dark. The Lite SettingsWindow already handles this correctly with the _originalTheme / _saved pattern — the Dashboard side needs the same treatment.
A couple of minor nits (not blocking):
Lite/Windows/CollectionLogWindow.xamlhas twoStaticResource BackgroundLightBrushthat should beDynamicResource- The Lite history windows (
ProcedureHistoryWindow,QueryStatsHistoryWindow,QueryStoreHistoryWindow) only have Light vs Dark branches for chart theming — CoolBreeze falls through to Light viaHasLightBackground, which works but misses the blue-tinted chart backgrounds
|
@erikdarlingdata done! |
What does this PR do?
Implements #60
This helps when I'm sharing screen/presenting (on not-so-good projectors).
Also, it will help other users who don't play well with dark mode.
Adds (2) "Light" themes - "Light" and "Cool Breeze" - alongside the "Dark" (the default).
Which component(s) does this affect?
How was this tested?
Dashboard
Added a new "Color Theme" section where we can select the theme from the drop-down.

Here is a light:

And the "Cool Breeze" (~matching SSMS v22 default theme - and less white but still light)

Lite
Here is a light:

And the "Cool Breeze" (~matching SSMS v22 default theme - and less white but still light)

Checklist
I have read the contributing guide
My code builds with zero warnings (
dotnet build -c Debug)It has warnings related to
PlanAnalyzer.cs(I haven't touched that)I have tested my changes against at least one SQL Server version
I have not introduced any hardcoded credentials or server names