Adorner 는 UIElement 위에 정보, 혹은 기능을 표시하기 위해 사용하는 사용자 지정 FrameworkElement 이다.
일반적인 용도는
- UIElement 에서 사용자가 크기 조정, 회전, 위치 변경과 같은 기능 핸들 추가
- 다양한 상태를 나타내거나 이벤트에 응답하기 위한 시각적 피드백 제공
- 그 외의 다양한 시각적 효과 overlay
등이 되겠다.
Adorner 는 UIElement 내에 AdornerLayer 라는 레이어를 생성하여 그 위에 Adorner 객체를 위치시키므로 해당 UIElement 내부의 어떤 객체들보다 상위에 나타난다. 따라서 항상 위에 나타나야 하는 객체들 - 상태 정보, 기능 핸들 등은 Adorner 를 사용하는 것이 Z-index 등을 조절하는 것보다 편한 방법이 될 것이다.
Adorner 클래스를 사용하는 방법은 다음과 같다.
1. Adorner 클래스를 상속받아 새로운 클래스를 만든다.
- Adorner 클래스는 추상 클래스(Abstract Class) 이므로 직접 사용할 수 없다.
- Rendering 을 구현해야 하는데, 일반적으로 OnRender() 메서드를 오버라이드(override)해서 사용한다.
2. Adorner 를 적용하고자 하는 엘리먼트에 AdornerLayer 를 가져온다.
3. 1에서 생성한 클래스를 2에서 가져온 AdornerLayer 에 추가한다.
AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(this);
adornerLayer.Add(myAdorner);
그 외
- Adorner 는 다른 객체들의 상위에 위치하므로, 마우스 이벤트를 받는다. Adorner 가 마우스 이벤트를 받지 않고 통과시키도록 하려면 IsHitTestVisible 속성을 false로 하면 된다.
MSDN 예시 코드
'Dev > WPF' 카테고리의 다른 글
[WPF] Textbox Watermark(hint) ( 텍스트박스에 힌트 넣기) (0) | 2012.07.31 |
---|---|
[WPF] ScrollViewer Tips (스크롤뷰어 Tips) - 1. IsDeferredScrollingEnabled (0) | 2012.07.31 |
[WPF] Clipboard (클립보드) (0) | 2012.07.30 |
[WPF] Image Loading (이미지 불러오기) (0) | 2012.07.30 |