Skip to content

Add theme support#77

Open
Blake-goofy wants to merge 3 commits intoAxial-SQL:mainfrom
Blake-goofy:feature/theme-support
Open

Add theme support#77
Blake-goofy wants to merge 3 commits intoAxial-SQL:mainfrom
Blake-goofy:feature/theme-support

Conversation

@Blake-goofy
Copy link

@Blake-goofy Blake-goofy commented Mar 16, 2026

This PR adds theme support for all xaml windows.
Many windows were completely unusable in any of the dark themes that ssms offers such as Dark and Moonlight Glow and Mystical Forest.

All screenshots here show the Dark theme which has a purple accent color, but that color will change depending on the theme. For example the primary button will be green when using Mystical Forest theme.

I also took the opportunity to sync up the style between windows while keeping the same feel of the extension.

Before

image

After

image

@Blake-goofy Blake-goofy marked this pull request as draft March 16, 2026 23:56
@Blake-goofy Blake-goofy changed the title Add theme support for settings, about, and data transfer pages Add theme support Mar 16, 2026
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just removed AllUsers="true" to make install easier for testing.

@alex-bochkov
Copy link
Contributor

Could you please try to reduce the code duplication where possible? I think a ResourceDictionary might help here.
The same applies to the C# code. I want to make sure it is easy to reuse and not too difficult to hook into a new form.

**ChatGPT**
1) ResourceDictionary (most common for shared UI pieces, styles, templates)
Define reusable pieces in a separate .xaml file: SharedResources.xaml

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Style x:Key="MyButtonStyle" TargetType="Button">
        <Setter Property="Background" Value="LightBlue"/>
    </Style>

</ResourceDictionary>

Reference it in another XAML:

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="SharedResources.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>

@Blake-goofy
Copy link
Author

Yes, I will keep that in mind moving forward. Thanks for the feedback.

@Blake-goofy
Copy link
Author

@alex-bochkov, I took the liberty of attempting to harmonize the tools window headings to match the GitHub sync window. I like the link to the wiki (see image in the top comment).

@Blake-goofy
Copy link
Author

Blake-goofy commented Mar 20, 2026

I made 2 non-theme related changes. Both changes were on the schema compare window.

1) Lazy-load definitions

Schema compare previously built full source and target definition scripts for every difference row during compare completion.

That behavior caused large memory/CPU spikes on big schemas and could freeze or crash SSMS before results rendered.

The implementation now loads definition text only for the selected difference row (and on Copy actions), which keeps initial rendering responsive.

2) Synchronized definition scrolling

The Source Definition and Target Definition panes now synchronize vertical and horizontal scrolling.

When one definition pane is scrolled, the other pane follows to the same offset so side-by-side review stays aligned.

@Blake-goofy
Copy link
Author

A couple more sample screenshots:

Before
image
After
image


Before
image
After
image

@Blake-goofy Blake-goofy marked this pull request as ready for review March 20, 2026 01:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants