我想单独更改ListView行的背景颜色。我已经能够这样做,但每行之间有两个像素的白度。我想消除空白区域,以便当两行具有相同的颜色时,它们之间没有可见的划分。
另外,当选择行或鼠标悬停时,其背景颜色将被隐藏。我可以再次看到它吗?
示例代码(在我的实际代码中,我通过数据绑定选择颜色):
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ListView>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<!--Doesn't help!-->
<Setter Property="Margin" Value="0 0 0 0"/>
<Setter Property="Padding" Value="0 0 0 0"/>
<Setter Property="Background" Value="Lime"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridViewColumn Width="120" Header="Date" />
<GridViewColumn Width="120" Header="Day Of Week"
DisplayMemberBinding="{Binding DayOfWeek}" />
<GridViewColumn Width="120" Header="Year"
DisplayMemberBinding="{Binding Year}" />
</GridView>
</ListView.View>
<sys:DateTime>1/2/3</sys:DateTime>
<sys:DateTime>4/5/6</sys:DateTime>
<sys:DateTime>7/8/9</sys:DateTime>
<sys:DateTime>10/11/12</sys:DateTime>
</ListView>
</Grid>
</Window>
答案 0 :(得分:1)
要消除您提到的空白,您需要使用0,-2,0,0
的负余量。如果这不起作用,那么您可能需要更深入地查看GridViewPresenter
以获取边距/填充属性。
另外,请从Codeplex(http://snoopwpf.codeplex.com/)获取 Snoop 的副本。对于任何 WPF开发来说,这是绝对必要的。