在 Silverlight 中,Shape 是一种允许您在屏幕中绘制形状的 UIElement 类型,
Silverlight 形状和绘图
。由于它们是用户界面 (UI) 元素,因此 Shape 对象可以在各种容器对象 (如 Grid 和 Canvas)中使用。本主题包括下列各节。
Shape 对象
使用 Path 和 Geometry
绘制形状
变换形状
相关主题
Shape 对象
Silverlight 提供很多随时可用的 Shape 对象,包括 Ellipse、Line、Path 、Polygon、Polyline 和 Rectangle。Shape 对象共享以下通用属性:
Stroke:说明如何绘制形状的轮廓。
StrokeThickness:说明形状轮廓的粗细。
Fill:说明如何绘制形状的内部。
用于指定坐标和顶点的数据属性,以与设备无关的像素来度量。
Shape 对象可以在 Canvas 对象中使用。Canvas 通过使用 Canvas.Left 和 Canvas.Top 附加属性支持其子对象的绝对定位。
使用 Line 类可以在两个点之间绘制一条直线。下面的示例演示了几种指定 线条坐标和描边属性的方法。
XAML
虽然 Line 类提供了 Fill 属性,但设置该属性无效,因为 Line 没有区域 。
另一个常用形状是 Ellipse。通过定义形状的 Width 和 Height 属性来创建 Ellipse,如以下示例中所示。若要绘制一个圆,请指定一个其 Width 和 Height 值相等的 Ellipse。
XAML
使用 Path 和 Geometry
使用 Path 类可以绘制曲线和复杂形状。使用 Geometry 对象来绘制这些曲 线和形状。若要使用 Path,请创建一个 Geometry 并使用它来设置 Path 对象 的 Data 属性。可以从各种 Geometry 对象中进行选择。LineGeometry、 RectangleGeometry 和 EllipseGeometry 类说明了相对简单的形状。若要创建 更复杂的形状或创建曲线,请使用 PathGeometry。有关创建 PathGeometry 对 象的信息,请参见几何图形。
XAML 缩写语法
在 XAML 中,可以使用一种特殊的缩写语法来描述 Path。在下面的示例中, 使用缩写语法来绘制一个复杂形状。
XAML
下图显示呈现的 Path,
电脑资料
《Silverlight 形状和绘图》(https://www.unjs.com)。路径图示
Data 属性字符串使用 mini-language。它以 move 命令开头(由 M 指示) ,这为 Canvas 的坐标系统中的路径建立一个起点。Path 数据参数区分大小写 。大写的 M 指示新的当前点的绝对位置。小写 m 则指示相对坐标。第一个线段 是一个三次方贝塞尔曲线,该曲线从 (100,200) 开始,在 (400,175) 结束,使 用 (100,25) 和 (400,350) 这两个控制点绘制。此线段由 Data 属性字符串中 的 C 命令指示。同样,大写的 C 指示绝对路径;小写的 c 则指示相对路径。
第二个线段以绝对水平 line 命令 H 开头,它指定绘制一条从前面的子路径 的终结点 (400,175) 到新终结点 (280,175) 的直线。由于它是一个水平 line 命令,因此指定的值是 x 坐标。
有关完整的路径语法,请参见 Data 参考内容和路径标记语法。
绘制形状
使用 Brush 对象绘制形状的 Stroke 和 Fill。在下面的示例中,指定了 Ellipse 的描边和填充。请注意,画笔属性的有效输入可以是关键字或十六进制 颜色值。
XAML
下图显示了呈现的 Ellipse。
Rendered ellipse
您也可以使用属性元素语法显式创建一个 SolidColorBrush 对象,以使用纯 色绘制形状。
XAML