DataTemplate将多个数据触发器转换为相同的元素和属性

如何在同一元素和属性上使用多个数据触发器?

              

注意我是如何定位SelectionGridOpacity属性的。 我怎样才能达到这个效果? 这应该复制Windows 7具有的hover选择框。 所以当它同时是SelectedIsMouseOver ,我希望它向我显示Selected状态。

您可以将MultiDataTriggerDataTriggerMultiBinding和BooleanOrConverter一起使用。

但我认为对你的问题最简单的解决方案是使用MultiBinding for Opacity ,你绑定到SelectedIsMouseOver

            

在OpacityConverter中,您可以决定Opacity

 public class OpacityConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) { bool isMouseOver = (bool)values[0]; bool selected = (bool)values[1]; if (selected == true) { return 1.0; } else if (isMouseOver == true) { return 0.5; } return 0.0; } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture) { throw new NotSupportedException(); } } 

编辑:以下是使用DataTriggerMultiDataTrigger