如何在WPF自定义控件库上显示画布?

时间:2018-09-11 20:28:29

标签: c# wpf canvas wpf-controls custom-controls

我有一个wpf自定义控件,可以在画布上绘制内容。但我不知道如何在窗口上显示此画布。当我将此控件添加到主机应用程序时,我希望此画布填充该应用程序的窗口。我看过一些使用模板绑定来显示ui元素等的教程,但我读到画布没有模板属性或其他东西。如何显示我正在绘制的画布?谢谢

 namespace WPFCustomControls { 

       public class MyCustomControl : Control { 
           private Canvas canvas = new Canvas();

          static MyCustomControl() { 
             DefaultStyleKeyProperty.OverrideMetadata(typeof(MyCustomControl), new
                FrameworkPropertyMetadata(typeof(MyCustomControl))); 
          } 

             public void drawOnCanvas()
              {
                 //draw stuff on canvas
              }
               public void displayCanvas()
              {
                 //display canvas on app window
              }

       } 
    } 

1 个答案:

答案 0 :(得分:0)

您可以从具有ContentControl属性的Content派生,而不是从Control派生。

例如:

public class MyCustomControl : ContentControl 
{ 
    private Canvas _canvas = new Canvas();

    public MyCustomControl()
    {
        this.Content = _canvas;
    }
} 

也可以直接从Canvas派生。