2010-01-22 74 views
3

我想在我的數據網格標題中的複選框,但是,我似乎無法居中對齊複選框。如何居中對齊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"複選框,它應該排隊。

+0

甜!謝謝,那曾經工作過:) – Adnan 2010-01-22 13:23:26

相關問題