#234 – 在窗体上显示DrawingVisual 实例(Getting a DrawingVisual Object Rendered in a Window)

2016-08-25 19:14:16来源:CSDN作者:Libby1984人点击

一个继承自DrawingVisual 类的实例需要寄宿在其他类型的实例上才能在窗体或者页面上显示。

这些低级别的控件可以在 UIElement 或者FrameworkElement 上寄宿(也就是通过其显示)。UIElement 支持基本的布局,这是在窗体或者容器中显示控件的所需要的最基本功能。

下面的例子通过重写FrameworkElement 来寄宿我们的新控件(EllipseAndRectangle为上一节中定义的类

public class EllAndRectHost : FrameworkElement{    private EllipseAndRectangle _ellAndRect = new EllipseAndRectangle();     // EllipseAndRectangle instance is our only visual child    protected override Visual GetVisualChild(int index)    {        return _ellAndRect;    }     protected override int VisualChildrenCount    {        get        {            return 1;        }    }}

我们创建一个有一个可视子元素的FrameworkElement 实例,重写其GetVisualChildVisualChildrenCount方法。

现在我们可以在XAML中直接使用这个类:

<local:EllAndRectHost Margin="30"/>

原文地址:https://wpf.2000things.com/2011/03/03/234-getting-a-drawingvisual-object-rendered-in-a-window/



最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台