2013-03-26 87 views

回答

1

你可以嘗試以下方法:

<DataGrid ItemsSource="{Binding}"> 
    <DataGrid.Columns> 
     <DataGridCheckBoxColumn Header="CheckBox"> 
      <DataGridCheckBoxColumn.ElementStyle> 
       <Style> 
        <Setter Property="FrameworkElement.Margin" Value="0,1,0,0" /> 
        <Setter Property="FrameworkElement.HorizontalAlignment" Value="Center" /> 
       </Style> 
      </DataGridCheckBoxColumn.ElementStyle> 
     </DataGridCheckBoxColumn> 
    </DataGrid.Columns> 
</DataGrid> 

它的工作原理,以及確切的複選框獲取指定Margin。請參閱msdn關於ElementStyle屬性的文章。另外,如果您在DataGrid中啓用編輯,則可以更改EditingElementStyle以應用適當的應用程序外觀。

+0

有趣的是,當我將這種樣式應用於具有隻讀屬性的數據網格時,複選框變得可由用戶檢查。爲什麼? – Erik 2016-06-02 06:03:58

+0

@Erik ...答案在這裏:http://stackoverflow.com/a/37584805/2946329 – 2016-06-02 11:25:48

0
<Window.Resources> 
    <Style TargetType="CheckBox" x:Key="check_box"> 
     <Setter Property="VerticalAlignment" Value="Center" /> 
     <Setter Property="HorizontalAlignment" Value="Center" /> 
    </Style> 
</Window.Resources> 

<DataGrid AutoGenerateColumns="False"> 
<DataGrid.Columns> 
<DataGridCheckBoxColumn Header="Caption" ElementStyle="{StaticResource check_box}" /> 
</DataGrid.Columns> 
</DataGrid>