我有一个TreeViewItems
的控制模板,而不是显示正常的FocusVisualStyle
我设置了MultiTrigger
这样的设置:
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="true"/>
<Condition Property="IsSelectionActive" Value="true"/>
</MultiTrigger.Conditions>
<Setter Property="FontWeight" Value="Bold"/>
</MultiTrigger>
但是,当选择FontWeight
父项时,这也会导致TreeViewItem's
更改为粗体。有什么方法可以阻止这种情况发生吗?
答案 0 :(得分:2)
好问题。它与dependency property value precedence有关。
这种情况正在发生,因为子树视图项不以任何方式覆盖FontWeight属性,因此它们从可视父级继承它。当IsSelected为false时,你可以做的是添加另一个普通触发器。
<Trigger Property="IsSelected" Value="false">
<Setter Property="FontWeight" Value="Normal" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="true"/>
<Condition Property="IsSelectionActive" Value="true"/>
</MultiTrigger.Conditions>
<Setter Property="FontWeight" Value="Bold"/>
</MultiTrigger>
现在,子TreeViewItem将通过触发器设置其FontWeight属性,该触发器将覆盖其所选父级的继承属性。