【发布时间】:2013-02-26 21:09:23
【问题描述】:
我想在我的数据网格上设置不同的背景颜色。我想要两种颜色。 第一行颜色 XXXX,第二行颜色 YYYY,第三行颜色 XXXXX,以此类推……
我尝试使用 AlternationIndex 创建样式,但我在行上看到相同的颜色。
有人可以帮帮我吗?
非常感谢:)
<Style x:Key="RowStyleWithAlternation" TargetType="DataGridRow">
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Background" Value="GhostWhite"/>
<Setter Property="FontWeight" Value="Normal"/>
<Setter Property="ContextMenu" Value="{x:Null}"/>
<Style.Triggers>
<Trigger Property="AlternationIndex" Value="1">
<Setter Property="Background" Value="#9f3131"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#F9F99F"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#F9F99F" />
</Trigger>
<Trigger Property="Validation.HasError" Value="True" >
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect Color="Red" ShadowDepth="0" BlurRadius="20" />
</Setter.Value>
</Setter>
<Setter Property="BorderThickness" Value="2" />
<Setter Property="BorderBrush" Value="Red" />
<Setter Property="Foreground" Value="Blue" />
<Setter Property="FontSize" Value="12" />
</Trigger>
</Style.Triggers>
</Style>
【问题讨论】:
-
您是否在场景中设置了AlternationCount Property?
-
此外,如果您在样式之外的控件上设置背景值,则会覆盖任何 setter 值。您必须确保没有本地值,这意味着您需要为每个 alt 行设置一个 setter。