WPF Control 상속 관계 정리
WPF에는 다양한 Control이 있습니다. 이 컨트롤들은 Object를 상속받아서 만들어지는데요. Control들의 상속 관계를 미리 알고 있으면, WPF를 공부하는데 아주 큰 도움이 됩니다.
우선 상속 관계에 대한 그림을 보도록 하겠습니다.
가장 상위 클래스는 DispatcherObject 입니다.
그리고 DependencyObject가 있습니다.
DispatcherObject는 Dispatcher를 갖고 있는 클래스입니다. Dispatcher는 쓰레드에 대해서 관리를 하는 역할을 하고 있습니다. 즉 하나의 Object에 대해서 단독으로 실행되는 작업을 관리하는 기능을 하고 있습니다.
예를 들면 우리가 컴퓨터로 파일을 옮길때, 마우스로 인터넷을 사용할 수 있는 이유는 각 작업이 독립적으로 관리가 되고 있기 때문인데요. 이러한 기능을 제공하는 것이 바로 DispatcherObject 입니다.
.WPF에서는 속성 값을 이용해서 다양한 기능을 구현할 수 있는데요. DependencyObject는 속성 값을 관리할 수 있는 기능을 제공하는 클래스입니다.
예를 들면 알람시계 프로그램을 만든다고 했을때, 알람 시간은 하나의 속성정보가 될 수 있고, 이 속성정보는 Control에 연결하여 값이 변경되는 것을 식별할 수 있습니다. 이러한 서비스를 제공하는 역할을 하고 있습니다.
이 내용은 추후 더 깊게 다루도록 하겠습니다.
WPF는 정말 다양한 방식으로 활용할 수 있습니다. Visual은 WPF에서 2D 렌더링을 지원하는 클래스인데요. 우리가 화면으로 볼 수 있는 모든 것들은 Visual이 담당하고 있습니다. Visual을 상속 받으면 WPF에서 제공하지 않는 다양한 것들을 만들 수 있습니다.
예를 들면 그래프나 애니메이션도 만들 수 있습니다. 실제로 WPF로 만들어진 다양한 그래프 라이브러리가 존재합니다.
Visual이 2D 관련된 렌더링 기능을 지원하고 있다면 Visual3D는 3D 관련된 렌더링 기능을 제공하고 있습니다. 이 클래스에는 Model3D 라는 클래스가 있어서 3D 모델을 만들 수 있습니다. 그리고 만들어진 3D 모델은 Viewport3D 라는 컨트롤에 추가할 수 있습니다.
앞으로 오늘 소개한 내용에 대해서 하나씩 자세하게 다뤄보도록 하겠습니다.
WPF 처음 시작하는 분들은 꼭 보세요. (2탄) (8) | 2020.04.20 |
---|---|
WPF 처음 시작하는 분들은 꼭 보세요. (1탄) (9) | 2020.04.19 |
C# - 클래스(Class)와 구조체(Struct)에 대해서 알아보자 (0) | 2020.04.08 |
C# Boxing And UnBoxing (1) | 2020.03.29 |
C# 메모리구조, 스택(Stack), 힙(Heap) (0) | 2020.03.25 |
댓글 영역