Adornerは使える1

System.Windows.Documents.AdornerクラスはUIElementを装飾する為に使用するクラスとMSDNで説明されていますが、装飾を実現可能とする機構を上手く利用すると装飾としてではない実装も色々出来ます。

 

コントロールのVisualツリーが構築される際に、コンテンツ領域の上位レイヤーにAdornerLayerが追加されます。そのAdornerLayerに独自のAdorner派生クラスを挿入する事が出来る為、常に前面に表示可能な要素を追加する事が出来ます。その機構を利用する事で、要素の最前面に表示するコントロールの作成などに上手く使えます。

 

使用するポイントは以下です。

 

  1. ArrangeOverrideで表示コントロールの配置を制御。
  2. GetVisualChildメソッドとVisualChildrenCountメソッドを使用してAdornerから表示するコントロールを返却してあげる。

 

次回、簡単なサンプルコードを元に実装を取り上げたいと思います。