wpf - 使用复选框格式化 XAML DataGrid 列标题
问题描述
我正在使用 MahApps Metro Style 来格式化 WPF DataGrid
。
<DataGrid x:Name="routes" ItemsSource="{Binding Routes}" AutoGenerateColumns="False" Style="{StaticResource AzureDataGrid}" CanUserAddRows="False" ColumnWidth="*" >
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding Active}" MaxWidth="80" ElementStyle="{DynamicResource MetroDataGridCheckBox}" EditingElementStyle="{DynamicResource MetroDataGridCheckBox}">
<DataGridCheckBoxColumn.Header>
<CheckBox Name="chkSelectAllRoutes" Checked="chkSelectAllRoutes_Checked" Unchecked="chkSelectAllRoutes_Unchecked" IsChecked="True" ></CheckBox>
</DataGridCheckBoxColumn.Header>
</DataGridCheckBoxColumn>
<DataGridTemplateColumn MaxWidth="40">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Click="btnSearchAtRoute_Click" Tag="{Binding Identifier}" >
<iconPacks:Material Kind="MapMarkerPath" />
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Binding="{Binding Name}" IsReadOnly="True" Header="Name"/>
<DataGridTextColumn Binding="{Binding Distance, StringFormat=N2}" IsReadOnly="True" Header="Distance in KM"/>
</DataGrid.Columns>
</DataGrid>
第一列包含CheckBox
标题和项目级别。结果显示在下面的屏幕截图中。标题复选框左对齐,而项目复选框在列中居中。
我怎样才能使标题复选框看起来像项目复选框(在中间对齐)?
解决方案
您可以使用列标题样式使复选框居中。
<DataGridCheckBoxColumn Binding="{Binding Active}" MaxWidth="80" ElementStyle="{DynamicResource MetroDataGridCheckBox}" EditingElementStyle="{DynamicResource MetroDataGridCheckBox}">
<DataGridCheckBoxColumn.HeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
</DataGridCheckBoxColumn.HeaderStyle>
<DataGridCheckBoxColumn.Header>
<CheckBox Name="chkSelectAllRoutes" Checked="chkSelectAllRoutes_Checked" Unchecked="chkSelectAllRoutes_Unchecked" IsChecked="True" ></CheckBox>
</DataGridCheckBoxColumn.Header>
</DataGridCheckBoxColumn>
推荐阅读
- r - 将多个 ggplot2 图形与一个共同的 x 轴和不同的 y 轴对齐,每个轴都有不同的 y 轴标签
- c# - DataGridView 添加行在底部显示打乱的行
- html - 除了标签如何使网格居中?
- swift - 如何在监控原因(地理围栏)时关闭 gps 时出现错误或警告?
- xml - 选择 xpath 中没有人的所有元素
- python - (正则表达式)如何使用 Python 通过忽略其包含的 HTML 来检索特定 div(p、span 等)的内容
- json - 如何使用 Graph API 获取电话号码
- wpf - How to Create Custom Message Box Template
- angular - Redirect routes angular 5
- android - Android UI:在单个活动中拥有多个元素的最有效方式