WPF-2D图形

Posted snake1118

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF-2D图形相关的知识,希望对你有一定的参考价值。

WPF可以使用矢量图,可以完美的缩放位任何尺寸。

WPF绘图的主要特点在于它是一种保留模式(retained-mode)的图形系统,不是立即模式(immdediate-mode)的图形系统。

这两中显示系统有啥差异呢。立即模式把整个界面当一个整体,改变局部其实是整个界面重绘。其他的不明白!

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

创建和使用二维图形,有3中数据可以使用:Drawing、Visual、Shape。

这三种的区别和差异:

Drawing描述了填充相关联的路径、形状、轮廓Brush。

Visual:把Drawing画到屏幕中的一种方式;也提供了完全摆脱Drawing对象的底层轻量级实现。

Shape:预制的Visual,画自定义工艺图最简单,最重量级的方法。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

先介绍Drawing

Drawing是抽象类,代表了二维图画。使用的主要是Drawing的子类。子类如下:

1、GeometryDrawing

  包括了Grawing类,Brush类,Pen类。

最基本的Drawing。

2、ImageDrawing

  包括ImageSource类,定义边界的Rect类。ImageSource可以使用GeometryDrawing。

3、VideoDrawing

  包括MediaPlayer类,定义近边界的Rect类。

4、GlyphRunDrawing

   包括GlyphRun类,低级别文本类,绘制前景色的Brush。

5、DrawingGroup

  包括一组Drawing的集合类,

Drawing类不是UIElement。想让Drawing绘制图像,需要宿主对象。

1、DrawingImage

2、DrawingBrush

3、DrawingVisual

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

举个例子

<Image>
   <Image.Source>
      <DrawingImage>
          <DrawingImage.Drawing>
              <GeometryDrawing Brush="Orange">
                  <GeometryDrawing.Pen>
                       <Pen Brush="Black" Thickness="10"></Pen>
                  </GeometryDrawing.Pen>
                  <GeometryDrawing.Geometry>
                       <EllipseGeometry RadiusX="100" RadiusY="50"></EllipseGeometry>
                  </GeometryDrawing.Geometry>
               </GeometryDrawing>
            </DrawingImage.Drawing>
       </DrawingImage>
    </Image.Source>
</Image>

 

以上是关于WPF-2D图形的主要内容,如果未能解决你的问题,请参考以下文章

Android片段布局完成膨胀

使用底图作为Python GUI中的图形

龟图形 - 尝试获取背景图像失败?

如何用opengl制作低分辨率图形? [关闭]

使用导航组件在不同图形之间导航

OpenGL - glDrawElementsInstanced - 片段着色器和不正确的颜色