pasé de esto: WPF GridViewHeader styling questions¿Cómo se teje un encabezado WPF GridView?
a esto:
Ahora sólo hay que deshacerse de los espacios en blanco a la derecha del "tamaño" de cabecera. Básicamente tengo una plantilla para el GridViewColumnHeader que lo convierte en un TextBlock. ¿Hay alguna manera de establecer el fondo para ese área de encabezado para que abarque todo el ancho de GridView?
añadida Código:
Ésta es mi columna derecha. La cuadrícula no abarca el 100% del área de ventana disponible. En el encabezado, necesito que todo a la derecha de esta columna tenga el mismo fondo que los encabezados de las columnas.
<Style x:Key="GridHeaderRight" TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GridViewColumnHeader}">
<TextBlock Text="{TemplateBinding Content}" Padding="5" Width="{TemplateBinding Width}" TextAlignment="Right">
<TextBlock.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0.0" Color="#373638" />
<GradientStop Offset="1.0" Color="#77797B" />
</LinearGradientBrush>
</TextBlock.Background>
</TextBlock>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Background" Value="Green" />
<Setter Property="Foreground" Value="White" />
<Setter Property="FontSize" Value="12" />
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0.0" Color="#373638" />
<GradientStop Offset="1.0" Color="#77797B" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
<GridViewColumn Width="200" HeaderContainerStyle="{ StaticResource GridHeaderRight}" Header="Size">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=EmployeeNumber}" HorizontalAlignment="Right"></TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
ACTUALIZACIÓN
estoy un paso más cerca (creo) a la solución de este.
I añade el siguiente código dentro de la etiqueta GridView:
<GridView.ColumnHeaderContainerStyle>
<Style TargetType="GridViewColumnHeader">
<Setter Property="BorderThickness" Value="1"></Setter>
<Setter Property="BorderBrush" Value="Green"></Setter>
<Setter Property="Height" Value="Auto"></Setter>
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0.0" Color="#373638" />
<GradientStop Offset="1.0" Color="#77797B" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
</GridView.ColumnHeaderContainerStyle>
La frontera está ahí sólo para que pueda ver el límite de lo que abarca este estilo. Esta es una imagen ampliada de lo que hace. Parece ser lo que quiero si puedo deshacerme del pequeño borde blanco en la parte inferior.
así que supongo que la eliminación de ese pequeño borde inferior blanca también sería una respuesta aceptada por éste.
Es probable que ayude a publicar su código/xaml existente. –
Agregué algunos códigos ahora. – djschwartz