我从一些示例中看到可以组合这种触发器:
<Trigger Property="IsMouseOver" Value="True">
使用这种数据触发器:
<DataTrigger Binding="{Binding IsHighlightable}" Value="True" />
通过使用这样的 MultiDataTrigger:
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsMouseOver}" Value="True"/>
<Condition Binding="{Binding IsHighlightable}" Value="True" />
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="#BF6DBDD1"/>
<Setter Property="Background" Value="{StaticResource SelectedItemBackgroundBrush}"/>
</MultiDataTrigger.Setters>
</MultiDataTrigger>
但是,这不适用于附加属性。此触发器的工作原理:
<Trigger Property="UI:TreeViewHelper.IsMouseDirectlyOverItem" Value="True">
但这不起作用:
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=UI:TreeViewHelper.IsMouseDirectlyOverItem}" Value="True"/>
<Condition Binding="{Binding IsHighlightable}" Value="True" />
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="#BF6DBDD1"/>
<Setter Property="Background" Value="{StaticResource SelectedItemBackgroundBrush}"/>
</MultiDataTrigger.Setters>
</MultiDataTrigger>
有没有办法让触发器在 MultiDataTrigger 内正常工作? IsMouseDirectlyOverItem 属性取自此处 http://blogs.msdn.com/b/mikehillberg/archive/2006/09/21/mytreeviewhelperismousedirectlyoveritem.aspx 。
谢谢
最佳答案
syntax附加属性不同:
Path=(UI:TreeViewHelper.IsMouseDirectlyOverItem)
关于wpf - 在 MultiDataTrigger 中组合 DataTrigger 和触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11419210/