当某些数据被“忽略”时,我想使某些文本变灰,但我不希望在选择该项目时发生变灰。(具体来说,在高对比度模式下,将颜色设置为灰度值会导致文字不可读)
这是我第一次尝试这样做。
<Style>
<!-- .... -->
<Setter Property="Control.Foreground"
Value="{DynamicResource {x:Static SystemColors.ControlTextColor}}" />
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<!-- Set gray text when not selected, and ignored. -->
<Condition Property="ListBoxItem.IsSelected" Value="false" />
<Condition Binding="{Binding Ignored}" Value="true" />
</MultiDataTrigger.Conditions>
<Setter Property="Control.Foreground"
Value="{DynamicResource {x:Static SystemColors.GrayTextColor}}" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
这在运行时失败,因为MultiDataTrigger
需要根据其条件设置绑定。(至少,我认为这就是它失败的原因。)
我该如何解决这个问题?