#233 – DrawingVisual类的一个例子

当需要一个低级别的控件来绘制若干2D图形的时候,你可以通过自定义一个继承自DrawingVisual 的类来实现。

下面的一个例子是通过一个继承自DrawingVisual 的类来显示两个图形的简单实现。

class EllipseAndRectangle : DrawingVisual
{
    public EllipseAndRectangle()
    {
        using (DrawingContext dc = RenderOpen())
        {
            // Black ellipse with blue border
            dc.DrawEllipse(Brushes.Black,
                new Pen(Brushes.Blue, 3),        // Border
                new Point(120, 120), 20, 40);    // Center & radius
 
            // Red rectangle with green border
            dc.DrawRectangle(Brushes.Red,
                new Pen(Brushes.Green, 4),       // Border
                new Rect(new Point(10, 10), new Point(80, 80)));    // Corners
        }
    }
}

RenderOpen 方法运行我们渲染一些内容到DrawingVisual 里面(打开用于呈现的 DrawingVisual 对象),RenderOpen 返回一个DrawingContext实例,用来绘制图形。

DrawingContext 会将所有绘制的指令缓存,因此我们只需要在构造函数中关注我们的绘制指令(译者:这一句具体要表达什么?)。

原文地址:https://wpf.2000things.com/2011/03/02/233-an-example-of-deriving-from-drawingvisual-class/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值