我正在开发一个Visual Studio扩展,并尝试将WPF DataGrid设为主题,以匹配Visual Studio的浅色或深色主题。除了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>
答案 0 :(得分:1)
我认为设置DataGrid
RowHeaderWidth
的唯一方法之一是:
<DataGrid x:Name="dataGrid"
RowHeaderWidth="0"
... />
我尝试设置RowHeaderStyle
和RowHeaderTemplate
,但它们不会影响左上角的区域。
也可能是PART_LeftHeaderGripper
拇指位于DataGridColumnHeader
,它位于标题栏的左侧:
<Thumb x:Name="PART_LeftHeaderGripper"
HorizontalAlignment="Left"
Style="{StaticResource Style_HeaderGripper}" />