2011-01-06 2 views
1

는 나는이처럼 설정 MultiTriggerTreeViewItems 및 대신 일반 FocusVisualStyle을 보여주는 컨트롤 템플릿이 있습니다WPF- 부모 TreeViewItem이 선택 될 때 TreeViewItems이 선택되고 활성화되는 것을 막을 수있는 방법이 있습니까?

<MultiTrigger> 
      <MultiTrigger.Conditions> 
       <Condition Property="IsSelected" Value="true"/> 
       <Condition Property="IsSelectionActive" Value="true"/> 
      </MultiTrigger.Conditions> 
      <Setter Property="FontWeight" Value="Bold"/> 
     </MultiTrigger> 

그러나이 또한 TreeViewItem's 상위 항목을 선택하면 굵은 글씨로 변경 FontWeight됩니다. 그 일을 막을 수있는 방법이 있습니까?

답변

2

큰 질문입니다. 그것은 dependency property value precedence와 관련이 있습니다.

자식 트리보기 항목이 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> 

이제 자식 TreeViewItem의 해당 FontWeight 속성은 선택한 부모의 상속 된 속성을 재정의하는 트리거에 의해 설정됩니다.

관련 문제