¿Cómo cambio el color de la intersección de los encabezados en el datagrid WPF?

programación


Hola chicos
Por favor, vea la imagen. Intersección — Freeimage.host[^]

Como puede ver, hay un espacio en blanco entre RowHeaders y ColumnHeaders en DataGrid. Entonces necesito saber ¿cómo puedo cambiar su color?
Gracias.

Lo que he probado:

Intenté cambiar el fondo de RowHeader, también ColumnHeader, pero su color no cambió.
Busqué en Internet pero no pude encontrar ningún código.

Solución 1

El mejor lugar para entender un control WPF es mirar la Plantilla predeterminada. Para DataGrid se puede encontrar aquí: Estilos y plantillas de DataGrid: WPF .NET Framework | Microsoft aprende[^].

Lo que estás señalando es el Botón Seleccionar todo en la esquina superior izquierda del DataGrid.

Usando el enlace de arriba, ese es el DataGridSelectAllButtonStyle. Es el primer estilo que se encuentra en la página vinculada anteriormente.

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

Haz una búsqueda de la plantilla y podrás ver dónde se aplica. Este es el estilo que necesitas modificar.

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>

Entonces necesitas modificar el DataGridSelectAllButtonStyle y aplicar un nuevo ControlTemplate. Hay un enlace en esa página que le indicará cómo crear un ControlTemplate y un enlace a una muestra en la parte inferior de la página.

コメント

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