图画
Geometry抽象类表示形状或路径。Drawing抽象类扮演了互补角色,他表示2D图画(drawing)——换句话说,它包含了显示矢量图形或位图需要的所有信息。
尽管有几类图画类,但只有GeometryDrawing类能使用已经学习过的集合图形。他增加了决定如何绘制图形的笔画和填充细节。可将GeometryeDrawing对象视为矢量插图中的形状。
<Image >
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<GeometryDrawing Brush="Yellow">
<GeometryDrawing.Pen>
<Pen Brush="Blue" Thickness="3"></Pen>
</GeometryDrawing.Pen>
<GeometryDrawing.Geometry>
<PathGeometry>
<PathFigure IsClosed="True" StartPoint="10,100">
<LineSegment Point="100,100"/>
<LineSegment Point="100,50"/>
</PathFigure>
</PathGeometry>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
图画类
类 | 说明 | 属性 |
---|---|---|
GeometryDrawing | 封装一个几何图形,该几何图形具有填充它的画刷和绘制其边框的画笔 | Geometry、Brush、Pen |
ImageDrawing | 封装衣服图像(通常是基于文件的位图图像),该图像具有定义图像边界的矩形 | ImageSource、Rect |
VideoDrawing | 结合用于播放视频文件的媒体播放器和定义其边界的矩形 | play、Rect |
GlyphRunDrawing | 封装低级文本对象,即所谓的具有绘制用画刷的GlyphRun对象 | GlyphRun、RoregroundBrush |
DrawingGroup | 组合各种类型的Drawing对象的集合。可使用DrawingGroup创建混合图画,并可使用它的一个属性一次为整个集合应用效果 | BitmapEffect、BitmapEffectInput、Chidren、ClipGeometry、GuideLineSet、Opacity、OpacityMask、Transform |
显示图画
因为继承自Drawing的类不是元素,所以无法将他们防止在用户界面。为了显示图画,需要使用下表列出的三个类的一个:
类 | 父类 | 说明 |
---|---|---|
DrawingImage | ImageSource | 允许在Image元素中驻留图画 |
DrawingBrush | Brush | 允许使用画刷封装图画,之后就可以用画刷绘制任何表面 |
DrawingVisual | Visual | 允许在低级的可视化对象中放置图画。可视化对象并不具有真正元素的开销,但是如果实现了需要的基础结构,那么仍可以显示可视化对象 |
假设希望使用矢量图形为按钮创建图标。最简单的方法就是在按钮中放置Canvas控件,并在Canvas空间中放置一系列继承自Shape类的元素
导出插图
- Adobe Illustrator工具的免费XAML插件
- Adobe Flash文件的免费XAML转换工具
- Expression Design