私はAdornerの珍しい使用を達成しようとしています。 RichTextBoxにマウスを重ねると、その上にAdorner(下の図を参照)が表示され、Adornerに含まれるListBoxに文字列のリストを追加できます。これは、装飾された要素に含まれる通路に「タグ」(àla Flickr)を追加するために使用されます。WPFアドラーの内部コントロール
まず:これはさえ可能ですか?
Adornerのほとんどの例では、AdornerのOnRenderメソッドをオーバーライドして、ドローイングのような簡単な操作を行う方法を示しています。 Adornerが表示されている間に追加の行テキストが追加されたためにRichTextBoxの高さが増加すると、自動的にリサイズされるAdornerの灰色の境界線を作成するために、これを使用することができました。
protected override void OnRender(DrawingContext drawingContext)
{
SolidColorBrush grayBrush = new SolidColorBrush();
grayBrush.Color = Color.FromRgb(153, 153, 153);
// left
drawingContext.DrawRectangle(grayBrush, null, new System.Windows.Rect(1, 1, 5, ActualHeight));
// right
drawingContext.DrawRectangle(grayBrush, null, new System.Windows.Rect(ActualWidth - 6, 1, 5, ActualHeight));
//bottom
drawingContext.DrawRectangle(grayBrush, null, new System.Windows.Rect(1, ActualHeight, ActualWidth - 2, 5));
// for reasons unimportant to this example the top gray bar is rendered as part of the RichTextBox
}
ただし、コントロールを追加することは少し問題があります。一般的に言えば、WPFのアドオンは、XAMLではなくコードで子コントロールを追加する必要があります。 DrawingContext adorner - possible to draw stackpanel?に記載されているテクニックを使用して、Adornerの初期設定で問題なく子コントロール(TextBoxなど)をAdornerに追加する方法を学習しました。
ただし、問題はAdorner内でのこれらのコントロールの配置です。
灰色の背景のグリッドを作成してAdornerの下部に配置することができたら、いいですね。私は、タグが追加されたときにGridのサイズの変化に基づいてAdornerを自動的にリサイズするようなことが自動的に起こると思います(希望)。おそらくリッチテキストボックスとしてのサイズを変更するために有していてもよい(Adornerは誰でも内この下部タグ制御領域を作成する方法をお勧めすることができ、これは可能であると仮定し、Adornerの底部に相対して位置決め要するに
、コンテンツのサイズ変更)?
も参照http://social.msdn.microsoft.com/Forums/en-US/ wpf/thread/81eca7d5-88d7-477a-8cdb-cfb9e8b75379/ –
明白ではありません。 – Basic