Как выровнять по центру содержимое шаблона заголовка для сетки данных Silverlight 3? - PullRequest
3 голосов
/ 22 января 2010

Я хотел бы установить флажок в заголовке моей таблицы данных, однако я не могу выровнять флажок по центру.

Это мой 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 голосов
/ 22 января 2010

Проблема в элементе управления по умолчанию. Шаблон для DataGridColumnHeader имеет 12-пиксельное положение справа для отображения SortIcon. Удалите ваш Border и добавьте Margin="12,0,0,0" в CheckBox, и он должен выстроиться в линию.

...