如何在自定义列表视图样式中自定义GridViewHeaderRowPresenter的外观?

时间:2012-02-01 15:48:18

标签: c# .net wpf listview styles

我想从Aero中的默认样式开始创建自定义ListView样式。我删除了所有的aero bull代码,只留下了基本的东西,但现在,我想自定义listview标题的外观

GridViewHeaderRowPresenter

必须自定义此元素的样式,使其看起来像我想要的样子。但是,似乎我不能这样做。我尝试用

替换它
GridViewColumnHeader

然后所有的绑定都消失了。有什么提示吗?

1 个答案:

答案 0 :(得分:0)

谢谢!我设法找出了什么是错的。我正在使用''并且在我的测试应用程序中它有效。但是,当尝试在实际应用程序中使用相同的样式时,它被覆盖或未被使用。所以我尝试了类似Style x:Key =“Style_GridViewColumnHeader”TargetType =“{x:Type GridViewColumnHeader}”。这有效,但由于某种原因,填充不适用。这是我用于填充部分的代码:

     <Style.Triggers>
        <Trigger Property="Role" Value="Padding">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="GridViewColumnHeader">
                        <Border x:Name="HeaderBorder" BorderBrush="{DynamicResource BRUSH_ListView_HeaderBorderBorderBrush_ALL}" BorderThickness="0,1,0,1" Background="{DynamicResource BRUSH_ListView_HeaderBorderBackground_UP}">
                            <Border x:Name="borderHighlight" BorderBrush="{DynamicResource BRUSH_ListView_borderHighlightBorderBrush_UP}" BorderThickness="0,1,0,0" />
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="Height" Value="Auto">
                                <Setter Property="MinHeight" Value="20"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Trigger>
    </Style.Triggers>