2010-01-22 4 views
3

Я хотел бы установить флажок в заголовке моего datagrid, однако, похоже, я не могу установить выравнивание по центру.Как центрировать выравнивание содержимого шаблона заголовка для datagrid Silverlight 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> 

Скриншот моего DataGrid можно увидеть по адресу: http://img686.imageshack.us/img686/5109/datagrid.png

Я только использовал границу, чтобы проиллюстрировать эту проблему, но я также попробовал Grid и Stackpanel, а также установил флажок непосредственно под тегом DataTemplate, но безрезультатно. Как я могу установить флажок в центр?

Любая помощь будет принята с благодарностью.

ответ

3

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

+0

Sweet! Спасибо, что сработало угощение :) – Adnan

Смежные вопросы