#232 – DrawingVisual类(The DrawingVisual Class)

DrawingVisual 是一个轻量级的类,它是用于在屏幕上绘制一系列二维矢量图形的基类。他继承自Visual 类,支持点击测试和坐标转换。它还继承ContainerVisual类,可以管理一系列单独的可视化Visual 实例。

你可以通过调用它的RenderOpen 方法获得DrawingContext 实例,然后调用它的DrawingContext 方法来绘制DrawingVisual 的内容。

DrawingVisualDrawing 属性表示的是DrawingVisual 绘制的2D对象的集合。

为了显示DrawingVisual 绘制的内容,必须将DrawingVisual 实例放在UIElement 或者FrameworkElement容器中。

原文地址:https://wpf.2000things.com/2011/03/01/232-the-drawingvisual-class/


*****************************************译者注******************************************

DrawingVisual 是一个可视对象,可用于在屏幕上呈现向量图形。内容由系统保存。它是一个轻量绘图类,之所以被视为轻量类,是因为它不提供布局、输入、焦点或事件处理功能,从而能够改善其性能。因此,DrawingVisual 绘图是背景和剪贴画的理想选择。

为了使用 DrawingVisual 对象,需要为这些对象创建一个承载容器。该承载容器对象必须从FrameworkElement类中派生,该类可提供DrawingVisual 类不支持的布局和事件处理支持。

它的继承结果如下:

下面的例子是使用DrawingVisual 类绘制文字。然后将绘制的内容作为图片在Image上显示。

Image myImage = new Image();
FormattedText text = new FormattedText("ABC",
        new CultureInfo("en-us"),
        FlowDirection.LeftToRight,
        new Typeface(this.FontFamily, FontStyles.Normal, FontWeights.Normal, new FontStretch()),
        this.FontSize,
        this.Foreground);

DrawingVisual drawingVisual = new DrawingVisual();
DrawingContext drawingContext = drawingVisual.RenderOpen();
drawingContext.DrawText(text, new Point(2, 2));
drawingContext.Close();

RenderTargetBitmap bmp = new RenderTargetBitmap(180, 180, 120, 96, PixelFormats.Pbgra32);
bmp.Render(drawingVisual);
myImage.Source = bmp;


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值