wpf-datagrid/listbox隔行换色
时间: 2023-07-18 12:44:37 浏览: 280
实现 WPF DataGrid 或 ListBox 的隔行换色,可以通过修改其 ItemContainerStyle 来实现。
以下是一个示例代码,假设需要将 DataGrid 或 ListBox 的奇数行的背景色设置为 #F5F5F5。
```xml
<!-- DataGrid -->
<DataGrid>
<DataGrid.ItemContainerStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" Value="White" />
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="Background" Value="#F5F5F5" />
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.ItemContainerStyle>
</DataGrid>
<!-- ListBox -->
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Background" Value="White" />
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="Background" Value="#F5F5F5" />
</Trigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
```
需要注意的是,为了实现隔行换色效果,我们使用了 ItemsControl.AlternationIndex 属性来判断当前项是否为奇数行。如果需要将偶数行设置为特定的颜色,只需要将 Value 的值改为 0 即可。同时,也可以在 Style 中添加其它的 Setter 来修改其它的样式属性,如前景色、字体等。
阅读全文