C# 如何设置TextBlock以填充WPF ListView行高?

C# 如何设置TextBlock以填充WPF ListView行高?,c#,.net,wpf,listview,styling,C#,.net,Wpf,Listview,Styling,我将文本块的背景设置为交替颜色上的不同颜色。正如您所看到的,有些间隙不是红色的: 有没有办法删除这些边距/间距或拉伸文本块以完全填充这些区域,从而使整个列区域着色 或者有没有办法设置整个ListViewItem BG颜色 以下是我的XAML代码: 我尝试了DataTriggers,但无法根据列标题设置ListViewItem的背景颜色,例如“Profit”: 有没有办法从listviewitem引用访问列标题?您的问题是,listviewitem的控件模板有一个边框,边框为Paddin

我将文本块的背景设置为交替颜色上的不同颜色。正如您所看到的,有些间隙不是红色的:

有没有办法删除这些边距/间距或拉伸文本块以完全填充这些区域,从而使整个列区域着色

或者有没有办法设置整个ListViewItem BG颜色

以下是我的XAML代码:


我尝试了DataTriggers,但无法根据列标题设置ListViewItem的背景颜色,例如“Profit”:



有没有办法从listviewitem引用访问列标题?

您的问题是,
listviewitem
的控件模板有一个
边框,边框为
Padding=2
。我看到唯一可以摆脱它的方法是用自己的控件模板替换控件模板。因此,您可以将以下内容添加到
列表视图中:

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem" BasedOn="{StaticResource {x:Type ListViewItem}}">                        
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ListViewItem">
                    <Border x:Name="Border" Padding="0" SnapsToDevicePixels="true" Background="{TemplateBinding Background}">
                        <GridViewRowPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                    </Border>
                </ControlTemplate>                                
            </Setter.Value>
        </Setter>                        
    </Style>
</ListView.ItemContainerStyle>

有关更多详细信息,请参见

如果需要,还可以自定义
VisualStateManager