是否可以在WPF System.Windows.Controls.Grid
中附加样式或定义属性以交替行(或列)的颜色?
我需要用户能够放置网格占位符(类似于CrystalReports)...它可以参数化网格,但网格(在视图中)不包含任何数据。
答案 0 :(得分:4)
我能想到这样做的唯一方法是手动使用在行内容之前声明的Rectangle
或者使用它的Z顺序设置将其推到后面:
<Grid Background="White">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Rectangle Grid.Row="0" Fill="AliceBlue" />
<TextBlock Grid.Row="0" Text="Row 1" HorizontalAlignment="Center"/>
<Rectangle Grid.Row="1" Fill="AntiqueWhite" />
<TextBlock Grid.Row="1" Text="Row 2" HorizontalAlignment="Center"/>
<Rectangle Grid.Row="2" Fill="AliceBlue" />
<TextBlock Grid.Row="2" Text="Row 3" HorizontalAlignment="Center"/>
<Rectangle Grid.Row="3" Fill="AntiqueWhite" />
<TextBlock Grid.Row="3" Text="Row 4" HorizontalAlignment="Center"/>
</Grid>
您可以使用绑定将行号传递给转换器以返回正确的颜色,而不是像我这里那样进行硬编码。