我想在我的数据网格的标题中添加一个复选框,但是,我似乎无法将复选框居中对齐。
这是我的 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 标记下,但都无济于事。如何让复选框居中?
任何帮助将不胜感激。
最佳答案
问题是 DataGridColumnHeader
的默认控件模板在右侧有一个 12 像素的规定用于 SortIcon 的外观。删除您的 Border
并将 Margin="12,0,0,0"
添加到 CheckBox,它应该对齐。
关于silverlight - 如何居中对齐 Silverlight 3 数据网格的页眉模板的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2116868/