Skip to content

Commit b7e08ae

Browse files
committed
modified datagrid style
RowHeight, ColumnHeaderHeight, ShowSelectAllButton
1 parent 1938e74 commit b7e08ae

File tree

8 files changed

+132
-17
lines changed

8 files changed

+132
-17
lines changed

src/Net_40/HandyControl_Net_40/Themes/Styles/DataGrid.xaml

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,13 @@
9292
</MultiTrigger>
9393
</Style.Triggers>
9494
</Style>
95+
9596
<Style x:Key="DataGridRowStyle" TargetType="DataGridRow">
9697
<Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
9798
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
9899
<Setter Property="SnapsToDevicePixels" Value="true"/>
99100
<Setter Property="Margin" Value="0,0,0,4"/>
100101
<Setter Property="Padding" Value="0,6"/>
101-
<Setter Property="MinHeight" Value="44"/>
102102
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/>
103103
<Setter Property="ValidationErrorTemplate">
104104
<Setter.Value>
@@ -145,6 +145,7 @@
145145
</MultiTrigger>
146146
</Style.Triggers>
147147
</Style>
148+
148149
<Style x:Key="ColumnHeaderGripperStyle" TargetType="Thumb">
149150
<Setter Property="Width" Value="8"/>
150151
<Setter Property="Background" Value="Transparent"/>
@@ -157,11 +158,11 @@
157158
</Setter.Value>
158159
</Setter>
159160
</Style>
161+
160162
<Style x:Key="DataGridColumnHeaderStyle" TargetType="DataGridColumnHeader">
161163
<Setter Property="VerticalContentAlignment" Value="Center"/>
162164
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
163-
<Setter Property="Padding" Value="12,6,12,12"/>
164-
<Setter Property="MinHeight" Value="44"/>
165+
<Setter Property="Padding" Value="12,0"/>
165166
<Setter Property="Template">
166167
<Setter.Value>
167168
<ControlTemplate TargetType="DataGridColumnHeader">
@@ -203,6 +204,7 @@
203204
</Trigger>
204205
</Style.Triggers>
205206
</Style>
207+
206208
<Style x:Key="DataGridRowHeaderStyle" TargetType="DataGridRowHeader">
207209
<Setter Property="Template">
208210
<Setter.Value>
@@ -220,6 +222,7 @@
220222
</Setter.Value>
221223
</Setter>
222224
</Style>
225+
223226
<Style x:Key="TextBlockComboBoxStyle" TargetType="ComboBox">
224227
<Setter Property="Focusable" Value="True"/>
225228
<Setter Property="Template">
@@ -230,9 +233,11 @@
230233
</Setter.Value>
231234
</Setter>
232235
</Style>
236+
233237
<Style x:Key="DataGridTextColumnStyle" TargetType="TextBlock">
234238
<Setter Property="TextTrimming" Value="CharacterEllipsis"/>
235239
</Style>
240+
236241
<Style TargetType="DataGrid">
237242
<Setter Property="Background" Value="{DynamicResource SecondaryRegionBrush}"/>
238243
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
@@ -253,6 +258,8 @@
253258
<Setter Property="CellStyle" Value="{StaticResource DataGridCellStyle}"/>
254259
<Setter Property="Padding" Value="6"/>
255260
<Setter Property="ColumnWidth" Value="*"/>
261+
<Setter Property="RowHeight" Value="44"/>
262+
<Setter Property="ColumnHeaderHeight" Value="44"/>
256263
<Setter Property="hc:DataGridAttach.TextColumnStyle" Value="{StaticResource DataGridTextColumnStyle}"/>
257264
<Setter Property="hc:DataGridAttach.EditingTextColumnStyle" Value="{StaticResource TextBoxBaseStyle}"/>
258265
<Setter Property="hc:DataGridAttach.ComboBoxColumnStyle" Value="{StaticResource TextBlockComboBoxStyle}"/>
@@ -295,7 +302,14 @@
295302
<RowDefinition Height="Auto"/>
296303
<RowDefinition Height="*"/>
297304
</Grid.RowDefinitions>
298-
<Button Command="{x:Static DataGrid.SelectAllCommand}" Margin="0,0,0,6" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.All}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType=DataGrid}}" Width="{Binding CellsPanelHorizontalOffset, RelativeSource={RelativeSource AncestorType=DataGrid},Converter={StaticResource DoubleMinConverter}}" Style="{StaticResource ButtonIcon}" hc:IconElement.Geometry="{StaticResource AllGeometry}" Foreground="{DynamicResource PrimaryBrush}"/>
305+
<Button Command="{x:Static DataGrid.SelectAllCommand}" Width="{Binding CellsPanelHorizontalOffset, RelativeSource={RelativeSource AncestorType=DataGrid},Converter={StaticResource DoubleMinConverter}}" Style="{StaticResource ButtonIcon}" hc:IconElement.Geometry="{StaticResource AllGeometry}" Foreground="{DynamicResource PrimaryBrush}">
306+
<Button.Visibility>
307+
<MultiBinding Converter="{StaticResource DataGridSelectAllButtonVisibilityConverter}">
308+
<Binding Path="HeadersVisibility" RelativeSource="{RelativeSource AncestorType=DataGrid}"/>
309+
<Binding Path="(hc:DataGridAttach.ShowSelectAllButton)" RelativeSource="{RelativeSource AncestorType=DataGrid}"/>
310+
</MultiBinding>
311+
</Button.Visibility>
312+
</Button>
299313
<DataGridColumnHeadersPresenter x:Name="PART_ColumnHeadersPresenter" Grid.ColumnSpan="2" Grid.Row="0" Grid.Column="1" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Column}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType=DataGrid}}"/>
300314
<hc:ToggleBlock IsChecked="{Binding HasItems,RelativeSource={RelativeSource AncestorType=DataGrid},Mode=OneWay}" Grid.ColumnSpan="3" Grid.Column="0" Grid.Row="1" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
301315
<hc:ToggleBlock.CheckedContent>

src/Net_40/HandyControl_Net_40/Themes/Theme.xaml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
<converter:Double2GridLengthConverter x:Key="Double2GridLengthConverter" />
3232
<converter:DoubleMinConverter x:Key="DoubleMinConverter" />
3333
<converter:Object2StringConverter x:Key="Object2StringConverter" />
34+
<converter:DataGridSelectAllButtonVisibilityConverter x:Key="DataGridSelectAllButtonVisibilityConverter" />
3435
<Color x:Key="EffectShadowColor">#88000000</Color>
3536
<system:Double x:Key="LargeFontSize">24</system:Double>
3637
<system:Double x:Key="HeadFontSize">20</system:Double>
@@ -11626,7 +11627,6 @@
1162611627
<Setter Property="SnapsToDevicePixels" Value="true" />
1162711628
<Setter Property="Margin" Value="0,0,0,4" />
1162811629
<Setter Property="Padding" Value="0,6" />
11629-
<Setter Property="MinHeight" Value="44" />
1163011630
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
1163111631
<Setter Property="ValidationErrorTemplate">
1163211632
<Setter.Value>
@@ -11676,8 +11676,7 @@
1167611676
<Style x:Key="DataGridColumnHeaderStyle" TargetType="DataGridColumnHeader">
1167711677
<Setter Property="VerticalContentAlignment" Value="Center" />
1167811678
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}" />
11679-
<Setter Property="Padding" Value="12,6,12,12" />
11680-
<Setter Property="MinHeight" Value="44" />
11679+
<Setter Property="Padding" Value="12,0" />
1168111680
<Setter Property="Template">
1168211681
<Setter.Value>
1168311682
<ControlTemplate TargetType="DataGridColumnHeader">
@@ -11756,6 +11755,8 @@
1175611755
<Setter Property="CellStyle" Value="{StaticResource DataGridCellStyle}" />
1175711756
<Setter Property="Padding" Value="6" />
1175811757
<Setter Property="ColumnWidth" Value="*" />
11758+
<Setter Property="RowHeight" Value="44" />
11759+
<Setter Property="ColumnHeaderHeight" Value="44" />
1175911760
<Setter Property="hc:DataGridAttach.TextColumnStyle" Value="{StaticResource DataGridTextColumnStyle}" />
1176011761
<Setter Property="hc:DataGridAttach.EditingTextColumnStyle" Value="{StaticResource TextBoxBaseStyle}" />
1176111762
<Setter Property="hc:DataGridAttach.ComboBoxColumnStyle" Value="{StaticResource TextBlockComboBoxStyle}" />
@@ -11798,7 +11799,14 @@
1179811799
<RowDefinition Height="Auto" />
1179911800
<RowDefinition Height="*" />
1180011801
</Grid.RowDefinitions>
11801-
<Button Command="{x:Static DataGrid.SelectAllCommand}" Margin="0,0,0,6" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.All}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType=DataGrid}}" Width="{Binding CellsPanelHorizontalOffset, RelativeSource={RelativeSource AncestorType=DataGrid},Converter={StaticResource DoubleMinConverter}}" Style="{StaticResource ButtonIcon}" hc:IconElement.Geometry="{StaticResource AllGeometry}" Foreground="{DynamicResource PrimaryBrush}" />
11802+
<Button Command="{x:Static DataGrid.SelectAllCommand}" Width="{Binding CellsPanelHorizontalOffset, RelativeSource={RelativeSource AncestorType=DataGrid},Converter={StaticResource DoubleMinConverter}}" Style="{StaticResource ButtonIcon}" hc:IconElement.Geometry="{StaticResource AllGeometry}" Foreground="{DynamicResource PrimaryBrush}">
11803+
<Button.Visibility>
11804+
<MultiBinding Converter="{StaticResource DataGridSelectAllButtonVisibilityConverter}">
11805+
<Binding Path="HeadersVisibility" RelativeSource="{RelativeSource AncestorType=DataGrid}" />
11806+
<Binding Path="(hc:DataGridAttach.ShowSelectAllButton)" RelativeSource="{RelativeSource AncestorType=DataGrid}" />
11807+
</MultiBinding>
11808+
</Button.Visibility>
11809+
</Button>
1180211810
<DataGridColumnHeadersPresenter x:Name="PART_ColumnHeadersPresenter" Grid.ColumnSpan="2" Grid.Row="0" Grid.Column="1" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Column}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType=DataGrid}}" />
1180311811
<hc:ToggleBlock IsChecked="{Binding HasItems,RelativeSource={RelativeSource AncestorType=DataGrid},Mode=OneWay}" Grid.ColumnSpan="3" Grid.Column="0" Grid.Row="1" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
1180411812
<hc:ToggleBlock.CheckedContent>

src/Shared/HandyControl_Shared/Controls/Attach/DataGridAttach.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,5 +336,14 @@ public static void SetCanUnselectAllWithBlankArea(DependencyObject element, bool
336336

337337
public static bool GetCanUnselectAllWithBlankArea(DependencyObject element)
338338
=> (bool) element.GetValue(CanUnselectAllWithBlankAreaProperty);
339+
340+
public static readonly DependencyProperty ShowSelectAllButtonProperty = DependencyProperty.RegisterAttached(
341+
"ShowSelectAllButton", typeof(bool), typeof(DataGridAttach), new PropertyMetadata(ValueBoxes.TrueBox));
342+
343+
public static void SetShowSelectAllButton(DependencyObject element, bool value)
344+
=> element.SetValue(ShowSelectAllButtonProperty, value);
345+
346+
public static bool GetShowSelectAllButton(DependencyObject element)
347+
=> (bool) element.GetValue(ShowSelectAllButtonProperty);
339348
}
340349
}

src/Shared/HandyControl_Shared/HandyControl_Shared.projitems

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@
136136
<Compile Include="$(MSBuildThisFileDirectory)Tools\Converter\BorderCircularClipConverter.cs" />
137137
<Compile Include="$(MSBuildThisFileDirectory)Tools\Converter\ColLayoutConverter.cs" />
138138
<Compile Include="$(MSBuildThisFileDirectory)Tools\Converter\CornerRadiusSplitConverter.cs" />
139+
<Compile Include="$(MSBuildThisFileDirectory)Tools\Converter\DataGridSelectAllButtonVisibilityConverter.cs" />
139140
<Compile Include="$(MSBuildThisFileDirectory)Tools\Converter\Double2GridLengthConverter.cs" />
140141
<Compile Include="$(MSBuildThisFileDirectory)Tools\Converter\DoubleMinConverter.cs" />
141142
<Compile Include="$(MSBuildThisFileDirectory)Tools\Converter\Number2PercentageConverter.cs" />

src/Shared/HandyControl_Shared/Themes/Basic/Converters.xaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,5 @@
2727
<converter:Double2GridLengthConverter x:Key="Double2GridLengthConverter"/>
2828
<converter:DoubleMinConverter x:Key="DoubleMinConverter"/>
2929
<converter:Object2StringConverter x:Key="Object2StringConverter"/>
30-
</ResourceDictionary>
30+
<converter:DataGridSelectAllButtonVisibilityConverter x:Key="DataGridSelectAllButtonVisibilityConverter"/>
31+
</ResourceDictionary>

src/Shared/HandyControl_Shared/Themes/Styles/DataGrid.xaml

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,13 @@
9191
</MultiTrigger>
9292
</Style.Triggers>
9393
</Style>
94+
9495
<Style x:Key="DataGridRowStyle" TargetType="DataGridRow">
9596
<Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
9697
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
9798
<Setter Property="SnapsToDevicePixels" Value="true"/>
9899
<Setter Property="Margin" Value="0,0,0,4"/>
99100
<Setter Property="Padding" Value="0,6"/>
100-
<Setter Property="MinHeight" Value="44"/>
101101
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/>
102102
<Setter Property="ValidationErrorTemplate">
103103
<Setter.Value>
@@ -144,6 +144,7 @@
144144
</MultiTrigger>
145145
</Style.Triggers>
146146
</Style>
147+
147148
<Style x:Key="ColumnHeaderGripperStyle" TargetType="Thumb">
148149
<Setter Property="Width" Value="8"/>
149150
<Setter Property="Background" Value="Transparent"/>
@@ -156,11 +157,11 @@
156157
</Setter.Value>
157158
</Setter>
158159
</Style>
160+
159161
<Style x:Key="DataGridColumnHeaderStyle" TargetType="DataGridColumnHeader">
160162
<Setter Property="VerticalContentAlignment" Value="Center"/>
161163
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
162-
<Setter Property="Padding" Value="12,6,12,12"/>
163-
<Setter Property="MinHeight" Value="44"/>
164+
<Setter Property="Padding" Value="12,0"/>
164165
<Setter Property="Template">
165166
<Setter.Value>
166167
<ControlTemplate TargetType="DataGridColumnHeader">
@@ -202,6 +203,7 @@
202203
</Trigger>
203204
</Style.Triggers>
204205
</Style>
206+
205207
<Style x:Key="DataGridRowHeaderStyle" TargetType="DataGridRowHeader">
206208
<Setter Property="Template">
207209
<Setter.Value>
@@ -219,6 +221,7 @@
219221
</Setter.Value>
220222
</Setter>
221223
</Style>
224+
222225
<Style x:Key="TextBlockComboBoxStyle" TargetType="ComboBox">
223226
<Setter Property="Focusable" Value="True"/>
224227
<Setter Property="Template">
@@ -229,9 +232,11 @@
229232
</Setter.Value>
230233
</Setter>
231234
</Style>
235+
232236
<Style x:Key="DataGridTextColumnStyle" TargetType="TextBlock">
233237
<Setter Property="TextTrimming" Value="CharacterEllipsis"/>
234238
</Style>
239+
235240
<Style TargetType="DataGrid">
236241
<Setter Property="Background" Value="{DynamicResource SecondaryRegionBrush}"/>
237242
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
@@ -252,6 +257,8 @@
252257
<Setter Property="CellStyle" Value="{StaticResource DataGridCellStyle}"/>
253258
<Setter Property="Padding" Value="6"/>
254259
<Setter Property="ColumnWidth" Value="*"/>
260+
<Setter Property="RowHeight" Value="44"/>
261+
<Setter Property="ColumnHeaderHeight" Value="44"/>
255262
<Setter Property="hc:DataGridAttach.TextColumnStyle" Value="{StaticResource DataGridTextColumnStyle}"/>
256263
<Setter Property="hc:DataGridAttach.EditingTextColumnStyle" Value="{StaticResource TextBoxBaseStyle}"/>
257264
<Setter Property="hc:DataGridAttach.ComboBoxColumnStyle" Value="{StaticResource TextBlockComboBoxStyle}"/>
@@ -294,7 +301,14 @@
294301
<RowDefinition Height="Auto"/>
295302
<RowDefinition Height="*"/>
296303
</Grid.RowDefinitions>
297-
<Button Command="{x:Static DataGrid.SelectAllCommand}" Margin="0,0,0,6" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.All}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType=DataGrid}}" Width="{Binding CellsPanelHorizontalOffset, RelativeSource={RelativeSource AncestorType=DataGrid},Converter={StaticResource DoubleMinConverter}}" Style="{StaticResource ButtonIcon}" hc:IconElement.Geometry="{StaticResource AllGeometry}" Foreground="{DynamicResource PrimaryBrush}"/>
304+
<Button Command="{x:Static DataGrid.SelectAllCommand}" Width="{Binding CellsPanelHorizontalOffset, RelativeSource={RelativeSource AncestorType=DataGrid},Converter={StaticResource DoubleMinConverter}}" Style="{StaticResource ButtonIcon}" hc:IconElement.Geometry="{StaticResource AllGeometry}" Foreground="{DynamicResource PrimaryBrush}">
305+
<Button.Visibility>
306+
<MultiBinding Converter="{StaticResource DataGridSelectAllButtonVisibilityConverter}">
307+
<Binding Path="HeadersVisibility" RelativeSource="{RelativeSource AncestorType=DataGrid}"/>
308+
<Binding Path="(hc:DataGridAttach.ShowSelectAllButton)" RelativeSource="{RelativeSource AncestorType=DataGrid}"/>
309+
</MultiBinding>
310+
</Button.Visibility>
311+
</Button>
298312
<DataGridColumnHeadersPresenter x:Name="PART_ColumnHeadersPresenter" Grid.ColumnSpan="2" Grid.Row="0" Grid.Column="1" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Column}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType=DataGrid}}"/>
299313
<hc:ToggleBlock IsChecked="{Binding HasItems,RelativeSource={RelativeSource AncestorType=DataGrid},Mode=OneWay}" Grid.ColumnSpan="3" Grid.Column="0" Grid.Row="1" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
300314
<hc:ToggleBlock.CheckedContent>

0 commit comments

Comments
 (0)