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