Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DataGrid column header style not congruent with .NET 9 / Win 11 styles #117

Open
fraluderin opened this issue Dec 9, 2024 · 4 comments
Open

Comments

@fraluderin
Copy link

I have a simple window with a DataGrid inside.
The project is targeting .NET 9 and Win 11 theming is enabled by adding the resources in App.xaml file:

  <Application.Resources>
      <ResourceDictionary>
          <ResourceDictionary.MergedDictionaries>
              <ResourceDictionary Source="pack://application:,,,/PresentationFramework.Fluent;component/Themes/Fluent.xaml" />
          </ResourceDictionary.MergedDictionaries>
      </ResourceDictionary>
  </Application.Resources>

Column headers are displayed without taking into account the Win 11 styling.

Current behavior:

Image

Expected behavior (I got this by removing dgx:DataGridFilter.IsAutoFilterEnabled="True" from my DataGrid XAML):

Image

Note that the headers are displayed but the lack of contrast make them almost unreadable.
I'm opening this issue, but I'm ready to forward it to WPF repo if this is not a DataGridExtension-related issue.

@tom-englert
Copy link
Collaborator

If you use custom styles for the data grid, you must use custom styles for the headers, too

@fraluderin
Copy link
Author

So this could be an issue from the Win 11 style pack I added in my resources? Should I report this in WPF repo?

@tom-englert
Copy link
Collaborator

Even if this custom styles are provided by WPF, they are still custom styles, affecting only the controls included in these custom styles.

DGX styles rely on the SystemColors, which are usually not updated by such custom style components - you have to do it by your own:

<Border Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
BorderThickness="1"
MinWidth="100"
BorderBrush="{DynamicResource {x:Static SystemColors.ActiveBorderBrushKey}}">
<DockPanel KeyboardNavigation.DirectionalNavigation="Cycle">

See e.g. here:
https://github.com/icsharpcode/ILSpy/blob/e652490cce4a3f5ec54b9c858807418f02e39ae0/ILSpy/Themes/Base.Dark.xaml#L41-L49

@Brains
Copy link

Brains commented Jan 8, 2025

I am using MahApps.Metro and needed this default style everywhere for old .NET 4.6.2 target:

<Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource MahApps.Styles.DataGridColumnHeader}"/>

For .NET 8 I did not require it anymore though (no idea why), at least so far.

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

No branches or pull requests

3 participants