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 예시 코드

http://msdn.microsoft.com/ko-kr/library/ms743737.aspx

+ Recent posts