How can I have multiple data triggers work on the same element and property?
You could use MultiDataTrigger
or a DataTrigger
with a MultiBinding
and a BooleanOrConverter.
But I think the easiest solution to your problem is to use a MultiBinding
for Opacity
where you bind to both Selected
and IsMouseOver
And in the OpacityConverter you decide the Opacity
value
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();
}
}
Edit: Here is how you can do it with a DataTrigger
and MultiDataTrigger