DataTemplate将多个数据触发器转换为相同的元素和属性
如何在同一元素和属性上使用多个数据触发器?
注意我是如何定位SelectionGrid
的Opacity
属性的。 我怎样才能达到这个效果? 这应该复制Windows 7具有的hover选择框。 所以当它同时是Selected
和IsMouseOver
,我希望它向我显示Selected
状态。
您可以将MultiDataTrigger
或DataTrigger
与MultiBinding
和BooleanOrConverter一起使用。
但我认为对你的问题最简单的解决方案是使用MultiBinding
for Opacity
,你绑定到Selected
和IsMouseOver
在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(); } }
编辑:以下是使用DataTrigger
和MultiDataTrigger