【发布时间】:2009-07-28 20:37:14
【问题描述】:
我是从这里开始的:WPF GridViewHeader styling questions
到这里:
现在我只需要去掉“Size”标题右侧的空白。我基本上有一个 GridViewColumnHeader 的模板,使它成为一个 TextBlock。有什么方法可以设置该标题区域的背景,使其跨越 GridView 的整个宽度?
添加代码:
这是我最右边的专栏。网格不跨越 100% 的可用窗口区域。在标题中,我需要此列右侧的所有内容与列标题本身具有相同的背景。
<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>
更新
我离解决这个问题更近了(我认为)。
我在 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>
边框的存在只是为了让您可以看到该样式所涵盖的范围。这是其作用的放大图像。如果我能去掉底部的小白边,这似乎是我想要的。
所以我想删除那个微小的白色底部边框也是这个问题的可接受答案。
ColumnHeaderContainerStyle http://img170.imageshack.us/img170/3851/columnheadercontainerst.png
【问题讨论】:
-
发布您现有的代码/xaml 可能会有所帮助。