[ad_1]
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.
<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.
<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.
[ad_2]
コメント