In MaterialDesignInXAML, text-based elements can be made to use a lighter color in a dark theme by setting TextElement.Foreground="{DynamicResource MaterialDesignBody}" on the window.
Something about the MaterialDesignTabControl style breaks this. The setup is very simple. Create a minimal project with MaterialDesignInXAML and MaterialDesignExtensions and set a BundledTheme in App.xaml. Then replace MainWindow.xaml with the following:
<Window x:Class="MDIXTabItemThemeBug.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
TextElement.Foreground="{DynamicResource MaterialDesignBody}"
Background="{DynamicResource MaterialDesignPaper}">
<StackPanel>
<TextBlock Text="what color is this?"/>
<TabControl Style="{StaticResource MaterialDesignTabControl}">
<TabItem Header="Tab 1">
<TextBlock Text="what color is this?"/>
</TabItem>
</TabControl>
</StackPanel>
</Window>
Run the project with BundledTheme set to a light theme, then to a dark theme. In both cases, the text outside the tab uses the correct color (dark on the light theme and light on the dark theme), but the text inside the tab stays dark.
I can fix this by making my own copy of MaterialDesignTabControl and adding this inside the TabItemStyle:
In MaterialDesignInXAML, text-based elements can be made to use a lighter color in a dark theme by setting
TextElement.Foreground="{DynamicResource MaterialDesignBody}"
on the window.Something about the
MaterialDesignTabControl
style breaks this. The setup is very simple. Create a minimal project with MaterialDesignInXAML and MaterialDesignExtensions and set aBundledTheme
inApp.xaml
. Then replace MainWindow.xaml with the following:Run the project with
BundledTheme
set to a light theme, then to a dark theme. In both cases, the text outside the tab uses the correct color (dark on the light theme and light on the dark theme), but the text inside the tab stays dark.I can fix this by making my own copy of
MaterialDesignTabControl
and adding this inside theTabItem
Style
:But I'm not sure it's the correct solution.