트리거로 TreeViewItem 헤더를 변경하십시오
-
21-08-2019 - |
문제
그런 스타일이 있습니다
<Style TargetType="TreeViewItem">
<Style.Triggers>
<Trigger Property="IsExpanded" Value="True">
<Setter Property="Header" Value="Pink"></Setter>
</Trigger>
</Style.Triggers>
</Style>
확장 된 TreeViewItems의 텍스트가 "분홍색"이기를 기대하지만 실제로는 설정이 없습니다. 대신 속성 = "배경"으로 변경하면 작동합니다. 어떻게 헤더 ~와 다르다 배경?
해결책
이것에 대해 더 완전히 답변하려면 더 많은 정보가 필요하다고 생각합니다. 그러나 내가 추측해야한다면, 아마도 당신은 아마도 treeviewitem에서 헤더 속성을 다음과 같이 명시 적으로 설정한다고 말할 것입니다.
<TreeView>
<TreeViewItem
Header="Blue"/>
</TreeView>
그리고이 경우 설정하면 스타일에 넣은 모든 것을 명시 적으로 무시할 수 있습니다.
다른 팁
Ascalonx의 답변에 대해 자세히 설명하기 위해 :
복사 조쉬 스미스 블로그 :
WPF가 내부적으로 사용하여 DP의 실제 값이 무엇인지 파악하기 위해 잘 정의 된 규칙 세트가 있습니다. 다음은 DP의 값을 해결할 때 사용 된 우선 순위 규칙에 대한 간략한 요약입니다 (최우선 순위에서 가장 높은 것).
- 속성 시스템 강요
- 활성 애니메이션 또는 홀드 동작이있는 애니메이션
- 로컬 가치
- 템플릿 템플릿
- 스타일 트리거
- 템플릿 트리거
- 스타일 세터
- 테마 스타일
- 계승
- 종속성 속성 메타 데이터의 기본값
따라서 헤더 속성을 명시 적으로 설정하면 (또는 묶인 경우 생각하면) 그 문제가 있습니다.
제휴하지 않습니다 StackOverflow