我想在数据网格的标题中设置一个复选框,但是,我似乎无法将复选框居中对齐。
这是我的xaml:
<data:DataGrid
x:Name="myDataGrid"
VerticalAlignment="Top"
Width="300"
Grid.Column="0"
AutoGenerateColumns="False">
<data:DataGrid.Columns>
<data:DataGridCheckBoxColumn Binding="{Binding IsNew}" Width="80">
<data:DataGridCheckBoxColumn.HeaderStyle>
<Style TargetType="dataprimitives:DataGridColumnHeader">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Border Background="Red" Width="80" HorizontalAlignment="Center">
<CheckBox
x:Name="chkAll"
HorizontalAlignment="Center"
HorizontalContentAlignment="Center"
Click="chk_Click">
</CheckBox>
</Border>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</data:DataGridCheckBoxColumn.HeaderStyle>
</data:DataGridCheckBoxColumn>
<data:DataGridTextColumn Header="First Name" Binding="{Binding FirstName}" Width="50" />
<data:DataGridTextColumn Header="Last Name" Binding="{Binding LastName}" Width="100" />
</data:DataGrid.Columns>
我的数据网格的屏幕截图可以在http://img686.imageshack.us/img686/5109/datagrid.png
看到我只使用边框来说明问题,但我也尝试过Grid和Stackpanel以及将复选框直接放在DataTemplate标签下,但都无济于事。如何让复选框居中?
非常感谢任何帮助。
答案 0 :(得分:3)
问题是DataGridColumnHeader
的默认控件模板在右侧有一个12像素的配置,用于出现SortIcon。移除Border
并将Margin="12,0,0,0"
添加到CheckBox,它应该排成一行。