替换网格行颜色

本文关键字:颜色 网格 替换 | 更新日期: 2023-09-27 18:27:19

是否可以在WPF System.Windows.Controls.Grid中附加样式或定义属性以替换行(或列)的颜色?

我需要用户能够放置一个网格占位符(类似于CrystalReports的东西)。。。它可以参数化网格,但网格(在视图中)将不包含任何数据。

替换网格行颜色

我能想到的唯一方法是手动使用在行内容之前声明的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>

您可能可以使用绑定将行号传递给转换器以返回正确的颜色,而不是像我在这里那样进行硬编码。