更改WPF DataGrid左上角标题的背景颜色

时间:2014-03-05 03:19:27

标签: wpf datagrid

我正在开发一个Visual Studio扩展,并尝试将WPF DataGrid设为主题,以匹配Visual Studio的浅色或深色主题。除了DataGrid的左上角,我已经成功地完成了所有工作。

DataGrid

在Silverlight中,这称为TopLeftCornerHeader,但我无法弄清楚如何更改WPF中的背景颜色。

到目前为止,我已经像这样修改了DataGrid,

<DataGrid 
    Background="{DynamicResource {x:Static wpf:Theme.BackgroundKey}}"
    Foreground="{DynamicResource {x:Static wpf:Theme.ForegroundKey}}"
    RowBackground="{DynamicResource {x:Static wpf:Theme.BackgroundKey}}"
    AlternatingRowBackground="{DynamicResource {x:Static wpf:Theme.BackgroundAccentKey}}" 
    HorizontalGridLinesBrush="{DynamicResource {x:Static wpf:Theme.ControlBorderKey}}"
    VerticalGridLinesBrush="{DynamicResource {x:Static wpf:Theme.ControlBorderKey}}"
    BorderBrush="{DynamicResource {x:Static wpf:Theme.ControlBorderKey}}" >
    <DataGrid.ColumnHeaderStyle>
        <Style TargetType="DataGridColumnHeader">
            <Setter Property="Background" Value="{DynamicResource {x:Static wpf:Theme.BackgroundKey}}" />
        </Style>
    </DataGrid.ColumnHeaderStyle>

1 个答案:

答案 0 :(得分:1)

我认为设置DataGrid RowHeaderWidth 的唯一方法之一是:

<DataGrid x:Name="dataGrid"
          RowHeaderWidth="0" 
          ... />

我尝试设置RowHeaderStyleRowHeaderTemplate,但它们不会影响左上角的区域。

也可能是PART_LeftHeaderGripper拇指位于DataGridColumnHeader,它位于标题栏的左侧:

<Thumb x:Name="PART_LeftHeaderGripper"
       HorizontalAlignment="Left"
       Style="{StaticResource Style_HeaderGripper}" />