Adorner를 비정상적으로 사용하려고합니다. RichTextBox에 마우스를 올리면 그 위에 Adorner (아래 그림 참조)가 나타나 Adorner에 포함 된 ListBox에 문자열 목록을 추가 할 수 있습니다. 장식 된 요소에 포함 된 구절에 "태그"(Flickr à la)를 추가하는 데 사용됩니다.컨트롤이있는 WPF adorner
첫째이도 가능하다?
Adorner의 대부분의 예제는 모양 그리기와 같은 사소한 작업을 수행하기 위해 Adorner의 OnRender 메서드를 재정의하는 방법을 보여줍니다. Adorner의 회색 테두리를 만드는 직사각형 세트를 렌더링하는 데 사용할 수있었습니다. Adorner가 표시된 동안 추가되는 텍스트가 추가되어 RichTextBox의 높이가 증가하면 자동으로 크기가 조정됩니다.
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의 자동 크기 조정과 같은 것들이 자동적으로 일어날 것이라고 나는 희망한다. 이 가능 가정 요컨대
는 누구나 아마도를 RichTextBox으로 크기를 조정할 필요가있다 Adorner 하단 (하기가 상대적 Adorner 이내에 하부 태그 관리 영역 를 생성 및 위치 지정하는 방법을 추천 할 콘텐츠 크기 조정)?
http://social.msdn.microsoft.com/Forums/en-US/ 참조하십시오. wpf/thread/81eca7d5-88d7-477a-8cdb-cfb9e8b75379/ –
잘 알려지지 않았습니다. – Basic