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>

 

posted @ 2020-04-13 15:12  snake1118  阅读(386)  评论(0编辑  收藏  举报