Skip to content

Commit b1ad6a6

Browse files
authored
Fix for Selected-Background on DataGridCell (#1809)
* Restored background trigger as DataTrigger considering DataGridRow.IsMouseOver (#1720) * Second DataGrid with SelectionUnit=Cell and SelectionMode=Extended (#1720)
1 parent cb67de8 commit b1ad6a6

File tree

2 files changed

+26
-9
lines changed

2 files changed

+26
-9
lines changed

MainDemo.Wpf/DataGrids.xaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,11 @@
104104
</smtx:XamlDisplay>
105105
<TextBlock Style="{StaticResource MaterialDesignHeadline5TextBlock}" Text="Auto Generated Columns" Margin="0 24 0 0"/>
106106
<smtx:XamlDisplay Key="grids_2">
107-
<DataGrid ItemsSource="{Binding Items2}" CanUserSortColumns="True" CanUserAddRows="False" />
107+
<DataGrid ItemsSource="{Binding Items2}"
108+
CanUserSortColumns="True"
109+
CanUserAddRows="False"
110+
SelectionUnit="Cell"
111+
SelectionMode="Extended" />
108112
</smtx:XamlDisplay>
109113
<TextBlock Style="{StaticResource MaterialDesignHeadline6TextBlock}" Text="Custom Padding" Margin="0 24 0 0"/>
110114
<smtx:XamlDisplay Key="grids_3">

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DataGrid.xaml

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -212,9 +212,12 @@
212212
<Setter Property="Template">
213213
<Setter.Value>
214214
<ControlTemplate TargetType="{x:Type DataGridCell}">
215-
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
215+
<Border BorderBrush="{TemplateBinding BorderBrush}"
216+
BorderThickness="{TemplateBinding BorderThickness}"
217+
Background="{TemplateBinding Background}"
218+
SnapsToDevicePixels="True">
216219
<ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
217-
Margin="{TemplateBinding Padding}"/>
220+
Margin="{TemplateBinding Padding}" />
218221
</Border>
219222
</ControlTemplate>
220223
</Setter.Value>
@@ -223,13 +226,23 @@
223226
<Trigger Property="IsKeyboardFocusWithin" Value="True">
224227
<Setter Property="BorderBrush" Value="{DynamicResource MaterialDesignTextBoxBorder}"/>
225228
</Trigger>
226-
<MultiTrigger>
227-
<MultiTrigger.Conditions>
228-
<Condition Property="IsSelected" Value="True"/>
229-
<Condition Property="Selector.IsSelectionActive" Value="True"/>
230-
</MultiTrigger.Conditions>
229+
<MultiDataTrigger>
230+
<MultiDataTrigger.Conditions>
231+
<Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="True"/>
232+
<Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType=DataGridRow}}" Value="False" />
233+
<Condition Binding="{Binding (Selector.IsSelectionActive), RelativeSource={RelativeSource Self}}" Value="False"/>
234+
</MultiDataTrigger.Conditions>
235+
<Setter Property="Background" Value="{DynamicResource MaterialDesignSelection}"/>
236+
</MultiDataTrigger>
237+
<MultiDataTrigger>
238+
<MultiDataTrigger.Conditions>
239+
<Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="True"/>
240+
<Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType=DataGridRow}}" Value="False" />
241+
<Condition Binding="{Binding (Selector.IsSelectionActive), RelativeSource={RelativeSource Self}}" Value="True"/>
242+
</MultiDataTrigger.Conditions>
231243
<Setter Property="Foreground" Value="{DynamicResource MaterialDesignBody}"/>
232-
</MultiTrigger>
244+
<Setter Property="Background" Value="{DynamicResource MaterialDesignSelection}" />
245+
</MultiDataTrigger>
233246
<Trigger Property="IsEnabled" Value="False">
234247
<Setter Property="Opacity" Value=".56"/>
235248
</Trigger>

0 commit comments

Comments
 (0)