我需要突出显示datagrid的MouseOver行,这种风格似乎很容易:
<Style TargetType="DataGridRow">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Green"/>
</Trigger>
</Style.Triggers>
</Style>
问题是我也有一些样式用于定义为:
的一些只读单元格<Style TargetType="DataGridCell">
<Style.Triggers>
<Trigger Property="IsReadOnly" Value="True">
<Setter Property="Background" Value="LightGoldenrodYellow"/>
</Trigger>
</Style.Triggers>
</Style>
因此,那些只读单元格不会获得MouseOver背景。我该如何解决这个冲突?非常感谢您的帮助。
答案 0 :(得分:2)
这不是冲突。 MouseOver事件旨在用于普通行和单元格,而不是只读。
您应该为此问题添加MultiTrigger。
样品:
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsReadOnly" Value="true" />
<Condition Property="IsMouseOver" Value="true" />
</MultiTrigger.Conditions>
<Setter Property="Background" Value="Green"/>
</MultiTrigger>
该代码对DataGridCell的样式有效。完成的代码示例将是:
<Style TargetType="DataGridCell">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsReadOnly" Value="true" />
<Condition Property="IsMouseOver" Value="true" />
</MultiTrigger.Conditions>
<Setter Property="Background" Value="Green"/>
</MultiTrigger>
</Style.Triggers>
</Style>