✍ 기본 요소
WPF에서는 UIElement, ContentElement, FrameworkElement 및 FrameworkContentElement 네 개의 클래스를 기본 요소라고 정의한다.
✍ FrameworkElement
FrameworkElement는 WPF 프레임워크 수준 요소 클래스와 UIElement 프레젠테이션 서비스의 WPF 핵심 수준 집합을 연결해주는 지점 역할을 한다.
요소 트리를 논리적 트리로 표현하고 태그에서 이러한 트리를 정의하는 작업은 FrameworkElement 수준에서 구현된다. WPF에서는 트리를 이용해 구조를 정의하는데 논리 트리는 시각적 트리와는 다른 개념으로 마크업을 이용해 구조를 표현할 때 이용된다. 논리적 트리는 FrameworkElement에서부터 정의 가능하다.
WPF의 트리는 요소 사이의 관계를 중첩 관계를 통해 정의하는 방법이다. 상위 요소는 하위 요소를 포함한다. 트리를 구성하는 방법은 콘텐츠 모델을 구성하는 속성에 속성 값을 할당함으로써 이루어진다. 예를 들면 ItemsControl 모델의 경우 Items에 할당을 하면 하부 요소로 지정이 되는 것이다. WPF는 몇 가지 콘텐츠 모델을 제공한다. 모델마다 고유한 속성을 통해 트리를 구성한다. WPF는 트리를 논리적 트리와 시각적 트리 두 개의 개념으로 나누어 정의한다.
1. 논리적 트리구조
논리적 트리는 콘텐트 모델이 자식 요소를 쉽게 포함시켜 확장시킬 수 있는 역할을 담당한다.
--> 디자인 부분을 담당하는 XAML이 있다. 윈도우 안에 그리드가 존재하고, 그리드 안에 또 다른 element가 존재할수도 있다. 이렇게 부모와 자식 관계로 트리로 나열되어 있는 모습을 논리적 트리구조라고 한다. 논리적 트리구조는 자식개체를 컨텐트 모델에서 쉽게 반복할 수 있고, 리소스를 조회하기 위한 용도로 사용된다.
논리적 트리구조를 찾아야 할 때는 LogicalTreeHelper
2. 시각적 트리구조
WPF는 논리적 트리와 더불어 시각적 트리라는 개념도 사용한다. 논리적 트리는 콘텐츠 모델을 구성하는 것에 비해, 비주얼 트리는 Visual 기본 클래스가 나타내는 시각적 요소의 구조를 나타낸다. 비주얼 트리는 시각적 트리를 설명하는 것이므로 Control의 경우 ControlTemplate 속성을 통해 정의된다.
시각적 트리구조를 찾아야 할 때는 VisualTreeHelper
💻 참고사이트
https://learn.microsoft.com/ko-kr/dotnet/desktop/wpf/advanced/trees-in-wpf?view=netframeworkdesktop-4.8
'C# > WPF' 카테고리의 다른 글
[WPF] Trigger, Property Trigger(프로퍼티 트리거) (0) | 2023.08.04 |
---|---|
[WPF] StaticResource (0) | 2023.08.04 |
[WPF] Data Template, Selector (0) | 2023.08.03 |
[WPF] EVENT(BUBBLING, TUNNULING) (0) | 2023.08.03 |
[WPF] 디스플레이 등록 정보 UI 만들기 (0) | 2023.07.18 |