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