WPF 응용 프로그램에서 WindowsFormsHost를 하나의 표에 추가했으며 WinFormsHost 내의 컨트롤에 사각형을 그립니다.WPF에있는 Adorners를 사용하여 WindowsFormsHost에 사각형을 그릴 수 없습니다.
응용 프로그램 레이아웃 : 나는 시도하고
코드 :
Adorner 클래스
public class SimpleRectAdorner : Adorner
{
// Be sure to call the base class constructor.
public SimpleRectAdorner(UIElement adornedElement)
: base(adornedElement)
{
}
// A common way to implement an adorner's rendering behavior is to override the OnRender
// method, which is called by the layout system as part of a rendering pass.
protected override void OnRender(DrawingContext drawingContext)
{
Rect adornedElementRect = new Rect(this.AdornedElement.DesiredSize);
// Some arbitrary drawing implements.
SolidColorBrush renderBrush = new SolidColorBrush(Colors.Green);
renderBrush.Opacity = 0.2;
Pen renderPen = new Pen(new SolidColorBrush(Colors.Navy), 1.5);
// Draw a circle at each corner.
Rect rect = new Rect(new Point(adornedElementRect.TopLeft.X, adornedElementRect.TopLeft.Y + 50), new Size(150, 50));
drawingContext.DrawRectangle(renderBrush, renderPen, rect);
}
}
코드 adorner
를 추가private void btnDraw_Click(object sender, RoutedEventArgs e)
{
AdornerLayer.GetAdornerLayer(viewerGrid.Children[0]).Add(new SimpleRectAdorner(viewerGrid.Children[0]));
}
WindowsFormsHost 안에있는 Control에 사각형을 그릴 수 있습니까?
미리 감사드립니다.
참조 : http://stackoverflow.com/q/9920480/1136211 – Clemens