如何将Silverlight 3数据网格的标题模板内容居中对齐?

3

我希望在我的数据表格标题中添加一个复选框,但我似乎无法使复选框居中对齐。

这是我的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标记下方,但都没有成功。如何让复选框居中显示?

非常感谢您的帮助。

1个回答

3
问题在于DataGridColumnHeader的默认控件模板在右侧预留了12像素的空间用于显示SortIcon。移除Border并将Margin="12,0,0,0"添加到CheckBox中,即可使它与其他元素对齐。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接