WPF-親ツリービューアイテムが選択されたときに選択され、アクティブになるのTreeViewItemsを停止する方法はありますか?
-
26-09-2019 - |
質問
私は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
の原因となります。私は起きてからそれを停止することができます任意の方法はありますか?
解決
グレート質問です。これは依存関係プロパティ値の優先順位に関係しています。
彼らは彼らの視覚的な親からそれを継承しているので、子ツリービュー項目がどのような方法でたfontWeightプロパティをオーバーライドしていないため、これが起こっています。あなたは何ができることはIsSelectedが偽のときのために、他の通常のトリガーを追加することです。
<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>
今の子供は、ツリービューアイテムは、その選択された親から継承されたプロパティをオーバーライドしますトリガによってそのたfontWeightプロパティセットを持つことになります。
所属していません StackOverflow