如何更改数据网格 WPF 中标题交叉点的颜色?


嗨,大家好
请看图片 交叉口 — Freeimage.host[^]

正如您所看到的,DataGrid 中的 RowHeaders 和 ColumnHeaders 之间有一个空格。 所以我需要知道如何改变它的颜色?
谢谢。

我尝试过的:

我尝试更改 RowHeader 和 ColumnHeader 的背景,但它的颜色没有改变。
我搜索了互联网,但找不到任何代码。

解决方案1

了解 WPF 控件的最佳位置是查看默认模板。 对于 DataGrid,可以在这里找到: DataGrid 样式和模板- WPF .NET Framework | DataGrid 样式和模板微软学习[^]。

你所指的是 选择全部按钮 在左上角 DataGrid

使用上面的链接,那就是 DataGridSelectAllButtonStyle。 这是在上面链接的页面上找到的第一个样式。

XML
<Style TargetType="{x:Type Button}"
       x:Key="{ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, 
       TypeInTargetAssembly={x:Type DataGrid}}">
    <!-- trimmed -->
</Style>

搜索该模板,您可以看到它的应用位置。 这是您需要修改的样式。

XML
<ControlTemplate TargetType="{x:Type DataGrid}">
    <!-- trimmed -->
		<Button Focusable="false"
			Command="{x:Static DataGrid.SelectAllCommand}"
			Style="{DynamicResource {ComponentResourceKey 
			ResourceId=DataGridSelectAllButtonStyle, 
			TypeInTargetAssembly={x:Type DataGrid}}}"
			Visibility="{Binding HeadersVisibility, 
			ConverterParameter={x:Static DataGridHeadersVisibility.All}, 
			Converter={x:Static DataGrid.HeadersVisibilityConverter}, 
			RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"
			Width="{Binding CellsPanelHorizontalOffset, 
			RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
    <!-- trimmed -->
</ControlTemplate>

所以你需要修改 DataGridSelectAllButtonStyle 并应用一个新的 ControlTemplate。 该页面上有一个链接将指导您如何创建 ControlTemplate 以及页面底部的示例链接。

コメント

タイトルとURLをコピーしました