翼度科技»论坛 编程开发 .net 查看内容

不可不知的WPF形状(Shape)

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
在WPF开发中经常需要进行绘制图形,可以利用Shape类型绘制基本的形状,而且Shape派生自FrameworkElement,属于UI元素范畴,可以直接利用XAML进行绘制。本文通过一些简单的小例子,简述如何通过Shape类绘制形状,仅供学习分享使用,如有不足之处,还请指正。
 
Shape类位于System.Windows.Shapes命名空间,而上篇文章介绍的Brush位于System.Windows.Media命令空间,由此可见两者所属的分类不同。Shape属于abstract修饰的抽象类,不能直接实例化,需要使用其派生类才可以。
 
形状对象

 
WPF提供了许多可以直接使用的Shape对象,而这些形状对象都是Shape的派生类,常见的主要包括直线(Line),椭圆(Ellipse),路径(Path),矩形(Rectangle),闭合多边形(Polygon),非闭合多边形(Ployline)等,具体如下所示:

所有的形状对象都派送自Shape基类,所以具有相同的属性,主要有以下几个:

  • Stroke,主要用于描述边框的绘制方式,为Brush类型。
  • Fill,主要用于描述形状对象的填充绘制方式,为Brush类型。
  • StrokeThickness,主要用于设置形状外边框的宽度,为double类型。
形状对象由于继承自FrameworkElement,可以像其他UI元素一样用在页面布局容器中。而由于Canvas支持子控件的绝对定位,所以非方便Shape对象的绘制。
 
直线(Line)

 
Line可用于在两点之间绘制直线。除了继承自Shape的属性外,属于Line的常见属性如下:
X1,Y1,主要用于设置直线的起始坐标。
X2,Y2,主要用于设置直线的结束坐标
绘制一条直线,代码如下所示:
  1. // 增加一个直线形状
  2. var line = new Line();
  3. //设置起始坐标
  4. line.X1 = 1;
  5. line.Y1 = 1;
  6. //设置结束坐标
  7. line.X2 = 50;
  8. line.Y2 = 50;
  9. line.HorizontalAlignment = HorizontalAlignment.Left;
  10. line.VerticalAlignment = VerticalAlignment.Center;
  11. //设置边框线绘制方式和宽度
  12. line.Stroke = System.Windows.Media.Brushes.LightSteelBlue;
  13. line.StrokeThickness = 2;
  14. myGrid.Children.Add(line);
复制代码
上述代码在XAML中实现,如下所示:
  1. [/code]尽管Line也有Fill属性,但是一般不会使用,因为Line没有闭合空间,设置了也不会有效果。
  2. 下图显示了呈现的 Line。
  3. [align=center][/align]
  4.  
  5. [size=6]椭圆(Ellipse)[/size]
  6.  
  7. Ellipse通过Width和Height属性来绘制椭圆,而圆(Circle)就是Width和Height相等的椭圆。
  8. 绘制椭圆代码如下所示:
  9. [code]// 创建一个椭圆
  10. Ellipse ellipse = new Ellipse();
  11. // 创建一个画笔
  12. SolidColorBrush brush = new SolidColorBrush();
  13. brush.Color = Color.FromArgb(255, 255, 255, 0);
  14. ellipse.Fill = brush;//用画笔作为椭圆的填充方式
  15. ellipse.StrokeThickness = 2;
  16. ellipse.Stroke = Brushes.Black;
  17. //设置椭圆的大小
  18. ellipse.Width = 200;
  19. ellipse.Height = 100;
复制代码
上述代码在XAML中实现,如下所示:
  1. [/code]下图显示了一个呈现的 Ellipse 示例。
  2. [align=center][/align]
  3.  
  4. [size=6]矩形(Rectangle)[/size]
  5.  
  6. Rectangle通过Width和Height来绘制矩形,通过Fill属性设置矩形的填充方式,通过Stroke和StrokThickness设置外边框的画笔和粗细。Rectangle常见属性如下所示:
  7. [list]
  8. [*]Width,Height 设置矩形的宽度和高度。
  9. [*]Fill设置矩形的填充方式,为Brush类型。
  10. [*]Stroke设置外边框的绘制方式,为Brush类型。
  11. [*]StrokeThickness,设置外边框的粗细,为double类型。
  12. [*]RadiusX,RadiusY,可用于为矩形设置圆角,分别对应矩形圆角的x轴和y轴半径。
  13. [/list]绘制矩形,如下所示:
  14. [code]<Canvas Width="120" Height="200" >
  15.    
  16.     <Rectangle
  17. <Canvas Height="400" Width="400">
  18.     <Polyline
  19.               Points="10,110 60,10 110,110"
  20.               Stroke="Black"
  21.               StrokeThickness="4" />
  22.     <Polyline
  23.               Points="10,110 110,110 110,10"
  24.               Stroke="Black"
  25.               StrokeThickness="4"
  26.               Canvas.Left="150" />
  27. </Canvas>      Width="100" Height="50"
  28. <Canvas Height="400" Width="400">
  29.     <Polyline
  30.               Points="10,110 60,10 110,110"
  31.               Stroke="Black"
  32.               StrokeThickness="4" />
  33.     <Polyline
  34.               Points="10,110 110,110 110,10"
  35.               Stroke="Black"
  36.               StrokeThickness="4"
  37.               Canvas.Left="150" />
  38. </Canvas>      Fill="Blue"
  39. <Canvas Height="400" Width="400">
  40.     <Polyline
  41.               Points="10,110 60,10 110,110"
  42.               Stroke="Black"
  43.               StrokeThickness="4" />
  44.     <Polyline
  45.               Points="10,110 110,110 110,10"
  46.               Stroke="Black"
  47.               StrokeThickness="4"
  48.               Canvas.Left="150" />
  49. </Canvas>      Canvas.Left="10"
  50. <Canvas Height="400" Width="400">
  51.     <Polyline
  52.               Points="10,110 60,10 110,110"
  53.               Stroke="Black"
  54.               StrokeThickness="4" />
  55.     <Polyline
  56.               Points="10,110 110,110 110,10"
  57.               Stroke="Black"
  58.               StrokeThickness="4"
  59.               Canvas.Left="150" />
  60. </Canvas>      Canvas.Top="25" />
  61.    
  62.     <Rectangle
  63. <Canvas Height="400" Width="400">
  64.     <Polyline
  65.               Points="10,110 60,10 110,110"
  66.               Stroke="Black"
  67.               StrokeThickness="4" />
  68.     <Polyline
  69.               Points="10,110 110,110 110,10"
  70.               Stroke="Black"
  71.               StrokeThickness="4"
  72.               Canvas.Left="150" />
  73. </Canvas>      Width="100" Height="50"
  74. <Canvas Height="400" Width="400">
  75.     <Polyline
  76.               Points="10,110 60,10 110,110"
  77.               Stroke="Black"
  78.               StrokeThickness="4" />
  79.     <Polyline
  80.               Points="10,110 110,110 110,10"
  81.               Stroke="Black"
  82.               StrokeThickness="4"
  83.               Canvas.Left="150" />
  84. </Canvas>      Fill="Blue"
  85. <Canvas Height="400" Width="400">
  86.     <Polyline
  87.               Points="10,110 60,10 110,110"
  88.               Stroke="Black"
  89.               StrokeThickness="4" />
  90.     <Polyline
  91.               Points="10,110 110,110 110,10"
  92.               Stroke="Black"
  93.               StrokeThickness="4"
  94.               Canvas.Left="150" />
  95. </Canvas>      Stroke="Black" StrokeThickness="4"
  96. <Canvas Height="400" Width="400">
  97.     <Polyline
  98.               Points="10,110 60,10 110,110"
  99.               Stroke="Black"
  100.               StrokeThickness="4" />
  101.     <Polyline
  102.               Points="10,110 110,110 110,10"
  103.               Stroke="Black"
  104.               StrokeThickness="4"
  105.               Canvas.Left="150" />
  106. </Canvas>      RadiusX="20" RadiusY="20"
  107. <Canvas Height="400" Width="400">
  108.     <Polyline
  109.               Points="10,110 60,10 110,110"
  110.               Stroke="Black"
  111.               StrokeThickness="4" />
  112.     <Polyline
  113.               Points="10,110 110,110 110,10"
  114.               Stroke="Black"
  115.               StrokeThickness="4"
  116.               Canvas.Left="150" />
  117. </Canvas>      Canvas.Left="10"
  118. <Canvas Height="400" Width="400">
  119.     <Polyline
  120.               Points="10,110 60,10 110,110"
  121.               Stroke="Black"
  122.               StrokeThickness="4" />
  123.     <Polyline
  124.               Points="10,110 110,110 110,10"
  125.               Stroke="Black"
  126.               StrokeThickness="4"
  127.               Canvas.Left="150" />
  128. </Canvas>      Canvas.Top="100"/>
  129. </Canvas>
复制代码
 
非闭合多边形(Polyline)

 
Ployline是一系列的非闭合的连接线,通过Points属性设置折线的顶点,Stroke设置线条的绘制方式,StrokeThickness设置线条的粗细。由于Polyline是非闭合的,所以Fill属性不起作用。
绘制非闭合多变形,如下所示:
  1. <Canvas Height="400" Width="400">
  2.     <Polyline
  3.               Points="10,110 60,10 110,110"
  4.               Stroke="Black"
  5.               StrokeThickness="4" />
  6.     <Polyline
  7.               Points="10,110 110,110 110,10"
  8.               Stroke="Black"
  9.               StrokeThickness="4"
  10.               Canvas.Left="150" />
  11. </Canvas>
复制代码
下图显示了一个Ployline的示例:

 
闭合多边形(Polygon)

 
Polygon用于绘制闭合多边形,依次将多边形的顶点进行连接,并自动绘制一条连接第一个点和最后一个点的线,形成闭合多边形。常见属性如下所示:

  • Points设置多边形的顶点,表示一组坐标,不同顶点用空格隔开,同一个顶点的x,y坐标用逗号隔开。格式:x1,y1 x2,y2 x3,y3 ... xn,yn。
  • Fill设置多边形的填充方式,为Brush类型。
  • Stroke设置外边框的绘制方式,为Brush类型。
  • StrokeThickness,设置外边框的粗细,为double类型。
Polygon绘制多边形代码如下所示:
  1. <Canvas Width="120" Height="200" >
  2.    
  3.     <Rectangle
  4. <Canvas Height="400" Width="400">
  5.     <Polyline
  6.               Points="10,110 60,10 110,110"
  7.               Stroke="Black"
  8.               StrokeThickness="4" />
  9.     <Polyline
  10.               Points="10,110 110,110 110,10"
  11.               Stroke="Black"
  12.               StrokeThickness="4"
  13.               Canvas.Left="150" />
  14. </Canvas>      Width="100" Height="50"
  15. <Canvas Height="400" Width="400">
  16.     <Polyline
  17.               Points="10,110 60,10 110,110"
  18.               Stroke="Black"
  19.               StrokeThickness="4" />
  20.     <Polyline
  21.               Points="10,110 110,110 110,10"
  22.               Stroke="Black"
  23.               StrokeThickness="4"
  24.               Canvas.Left="150" />
  25. </Canvas>      Fill="Blue"
  26. <Canvas Height="400" Width="400">
  27.     <Polyline
  28.               Points="10,110 60,10 110,110"
  29.               Stroke="Black"
  30.               StrokeThickness="4" />
  31.     <Polyline
  32.               Points="10,110 110,110 110,10"
  33.               Stroke="Black"
  34.               StrokeThickness="4"
  35.               Canvas.Left="150" />
  36. </Canvas>      Canvas.Left="10"
  37. <Canvas Height="400" Width="400">
  38.     <Polyline
  39.               Points="10,110 60,10 110,110"
  40.               Stroke="Black"
  41.               StrokeThickness="4" />
  42.     <Polyline
  43.               Points="10,110 110,110 110,10"
  44.               Stroke="Black"
  45.               StrokeThickness="4"
  46.               Canvas.Left="150" />
  47. </Canvas>      Canvas.Top="25" />
  48.    
  49.     <Rectangle
  50. <Canvas Height="400" Width="400">
  51.     <Polyline
  52.               Points="10,110 60,10 110,110"
  53.               Stroke="Black"
  54.               StrokeThickness="4" />
  55.     <Polyline
  56.               Points="10,110 110,110 110,10"
  57.               Stroke="Black"
  58.               StrokeThickness="4"
  59.               Canvas.Left="150" />
  60. </Canvas>      Width="100" Height="50"
  61. <Canvas Height="400" Width="400">
  62.     <Polyline
  63.               Points="10,110 60,10 110,110"
  64.               Stroke="Black"
  65.               StrokeThickness="4" />
  66.     <Polyline
  67.               Points="10,110 110,110 110,10"
  68.               Stroke="Black"
  69.               StrokeThickness="4"
  70.               Canvas.Left="150" />
  71. </Canvas>      Fill="Blue"
  72. <Canvas Height="400" Width="400">
  73.     <Polyline
  74.               Points="10,110 60,10 110,110"
  75.               Stroke="Black"
  76.               StrokeThickness="4" />
  77.     <Polyline
  78.               Points="10,110 110,110 110,10"
  79.               Stroke="Black"
  80.               StrokeThickness="4"
  81.               Canvas.Left="150" />
  82. </Canvas>      Stroke="Black" StrokeThickness="4"
  83. <Canvas Height="400" Width="400">
  84.     <Polyline
  85.               Points="10,110 60,10 110,110"
  86.               Stroke="Black"
  87.               StrokeThickness="4" />
  88.     <Polyline
  89.               Points="10,110 110,110 110,10"
  90.               Stroke="Black"
  91.               StrokeThickness="4"
  92.               Canvas.Left="150" />
  93. </Canvas>      RadiusX="20" RadiusY="20"
  94. <Canvas Height="400" Width="400">
  95.     <Polyline
  96.               Points="10,110 60,10 110,110"
  97.               Stroke="Black"
  98.               StrokeThickness="4" />
  99.     <Polyline
  100.               Points="10,110 110,110 110,10"
  101.               Stroke="Black"
  102.               StrokeThickness="4"
  103.               Canvas.Left="150" />
  104. </Canvas>      Canvas.Left="10"
  105. <Canvas Height="400" Width="400">
  106.     <Polyline
  107.               Points="10,110 60,10 110,110"
  108.               Stroke="Black"
  109.               StrokeThickness="4" />
  110.     <Polyline
  111.               Points="10,110 110,110 110,10"
  112.               Stroke="Black"
  113.               StrokeThickness="4"
  114.               Canvas.Left="150" />
  115. </Canvas>      Canvas.Top="100"/>
  116. </Canvas><Canvas Width="120" Height="200" >
  117.    
  118.     <Rectangle
  119. <Canvas Height="400" Width="400">
  120.     <Polyline
  121.               Points="10,110 60,10 110,110"
  122.               Stroke="Black"
  123.               StrokeThickness="4" />
  124.     <Polyline
  125.               Points="10,110 110,110 110,10"
  126.               Stroke="Black"
  127.               StrokeThickness="4"
  128.               Canvas.Left="150" />
  129. </Canvas>      Width="100" Height="50"
  130. <Canvas Height="400" Width="400">
  131.     <Polyline
  132.               Points="10,110 60,10 110,110"
  133.               Stroke="Black"
  134.               StrokeThickness="4" />
  135.     <Polyline
  136.               Points="10,110 110,110 110,10"
  137.               Stroke="Black"
  138.               StrokeThickness="4"
  139.               Canvas.Left="150" />
  140. </Canvas>      Fill="Blue"
  141. <Canvas Height="400" Width="400">
  142.     <Polyline
  143.               Points="10,110 60,10 110,110"
  144.               Stroke="Black"
  145.               StrokeThickness="4" />
  146.     <Polyline
  147.               Points="10,110 110,110 110,10"
  148.               Stroke="Black"
  149.               StrokeThickness="4"
  150.               Canvas.Left="150" />
  151. </Canvas>      Canvas.Left="10"
  152. <Canvas Height="400" Width="400">
  153.     <Polyline
  154.               Points="10,110 60,10 110,110"
  155.               Stroke="Black"
  156.               StrokeThickness="4" />
  157.     <Polyline
  158.               Points="10,110 110,110 110,10"
  159.               Stroke="Black"
  160.               StrokeThickness="4"
  161.               Canvas.Left="150" />
  162. </Canvas>      Canvas.Top="25" />
  163.    
  164.     <Rectangle
  165. <Canvas Height="400" Width="400">
  166.     <Polyline
  167.               Points="10,110 60,10 110,110"
  168.               Stroke="Black"
  169.               StrokeThickness="4" />
  170.     <Polyline
  171.               Points="10,110 110,110 110,10"
  172.               Stroke="Black"
  173.               StrokeThickness="4"
  174.               Canvas.Left="150" />
  175. </Canvas>      Width="100" Height="50"
  176. <Canvas Height="400" Width="400">
  177.     <Polyline
  178.               Points="10,110 60,10 110,110"
  179.               Stroke="Black"
  180.               StrokeThickness="4" />
  181.     <Polyline
  182.               Points="10,110 110,110 110,10"
  183.               Stroke="Black"
  184.               StrokeThickness="4"
  185.               Canvas.Left="150" />
  186. </Canvas>      Fill="Blue"
  187. <Canvas Height="400" Width="400">
  188.     <Polyline
  189.               Points="10,110 60,10 110,110"
  190.               Stroke="Black"
  191.               StrokeThickness="4" />
  192.     <Polyline
  193.               Points="10,110 110,110 110,10"
  194.               Stroke="Black"
  195.               StrokeThickness="4"
  196.               Canvas.Left="150" />
  197. </Canvas>      Stroke="Black" StrokeThickness="4"
  198. <Canvas Height="400" Width="400">
  199.     <Polyline
  200.               Points="10,110 60,10 110,110"
  201.               Stroke="Black"
  202.               StrokeThickness="4" />
  203.     <Polyline
  204.               Points="10,110 110,110 110,10"
  205.               Stroke="Black"
  206.               StrokeThickness="4"
  207.               Canvas.Left="150" />
  208. </Canvas>      RadiusX="20" RadiusY="20"
  209. <Canvas Height="400" Width="400">
  210.     <Polyline
  211.               Points="10,110 60,10 110,110"
  212.               Stroke="Black"
  213.               StrokeThickness="4" />
  214.     <Polyline
  215.               Points="10,110 110,110 110,10"
  216.               Stroke="Black"
  217.               StrokeThickness="4"
  218.               Canvas.Left="150" />
  219. </Canvas>      Canvas.Left="10"
  220. <Canvas Height="400" Width="400">
  221.     <Polyline
  222.               Points="10,110 60,10 110,110"
  223.               Stroke="Black"
  224.               StrokeThickness="4" />
  225.     <Polyline
  226.               Points="10,110 110,110 110,10"
  227.               Stroke="Black"
  228.               StrokeThickness="4"
  229.               Canvas.Left="150" />
  230. </Canvas>      Canvas.Top="100"/>
  231. </Canvas>
复制代码
下图显示了一个Ploygon示例:

 
路径形状(Path)

 
Path用于绘制曲线和复杂的图形,主要通过Data属性进行设置路径,为Geometry类型。常见的Geometry类型有LineGeometry,RectangleGeometry,EllipseGeometry等简单的图形,还可以用PathGeometry创建复杂的图形。
PathGeometry 对象由一个或多个 PathFigure 对象组成;每个 PathFigure 代表不同的“图形”或形状。 每个 PathFigure 本身由一个或多个 PathSegment 对象组成,每个对象代表图形或形状的连接部分。 细分类型包括:LineSegment、BezierSegment 和 ArcSegment。
下面的示例使用了 Path 绘制二次贝塞尔曲线。
  1. <Canvas Width="120" Height="200" >
  2.    
  3.     <Rectangle
  4. <Canvas Height="400" Width="400">
  5.     <Polyline
  6.               Points="10,110 60,10 110,110"
  7.               Stroke="Black"
  8.               StrokeThickness="4" />
  9.     <Polyline
  10.               Points="10,110 110,110 110,10"
  11.               Stroke="Black"
  12.               StrokeThickness="4"
  13.               Canvas.Left="150" />
  14. </Canvas>      Width="100" Height="50"
  15. <Canvas Height="400" Width="400">
  16.     <Polyline
  17.               Points="10,110 60,10 110,110"
  18.               Stroke="Black"
  19.               StrokeThickness="4" />
  20.     <Polyline
  21.               Points="10,110 110,110 110,10"
  22.               Stroke="Black"
  23.               StrokeThickness="4"
  24.               Canvas.Left="150" />
  25. </Canvas>      Fill="Blue"
  26. <Canvas Height="400" Width="400">
  27.     <Polyline
  28.               Points="10,110 60,10 110,110"
  29.               Stroke="Black"
  30.               StrokeThickness="4" />
  31.     <Polyline
  32.               Points="10,110 110,110 110,10"
  33.               Stroke="Black"
  34.               StrokeThickness="4"
  35.               Canvas.Left="150" />
  36. </Canvas>      Canvas.Left="10"
  37. <Canvas Height="400" Width="400">
  38.     <Polyline
  39.               Points="10,110 60,10 110,110"
  40.               Stroke="Black"
  41.               StrokeThickness="4" />
  42.     <Polyline
  43.               Points="10,110 110,110 110,10"
  44.               Stroke="Black"
  45.               StrokeThickness="4"
  46.               Canvas.Left="150" />
  47. </Canvas>      Canvas.Top="25" />
  48.    
  49.     <Rectangle
  50. <Canvas Height="400" Width="400">
  51.     <Polyline
  52.               Points="10,110 60,10 110,110"
  53.               Stroke="Black"
  54.               StrokeThickness="4" />
  55.     <Polyline
  56.               Points="10,110 110,110 110,10"
  57.               Stroke="Black"
  58.               StrokeThickness="4"
  59.               Canvas.Left="150" />
  60. </Canvas>      Width="100" Height="50"
  61. <Canvas Height="400" Width="400">
  62.     <Polyline
  63.               Points="10,110 60,10 110,110"
  64.               Stroke="Black"
  65.               StrokeThickness="4" />
  66.     <Polyline
  67.               Points="10,110 110,110 110,10"
  68.               Stroke="Black"
  69.               StrokeThickness="4"
  70.               Canvas.Left="150" />
  71. </Canvas>      Fill="Blue"
  72. <Canvas Height="400" Width="400">
  73.     <Polyline
  74.               Points="10,110 60,10 110,110"
  75.               Stroke="Black"
  76.               StrokeThickness="4" />
  77.     <Polyline
  78.               Points="10,110 110,110 110,10"
  79.               Stroke="Black"
  80.               StrokeThickness="4"
  81.               Canvas.Left="150" />
  82. </Canvas>      Stroke="Black" StrokeThickness="4"
  83. <Canvas Height="400" Width="400">
  84.     <Polyline
  85.               Points="10,110 60,10 110,110"
  86.               Stroke="Black"
  87.               StrokeThickness="4" />
  88.     <Polyline
  89.               Points="10,110 110,110 110,10"
  90.               Stroke="Black"
  91.               StrokeThickness="4"
  92.               Canvas.Left="150" />
  93. </Canvas>      RadiusX="20" RadiusY="20"
  94. <Canvas Height="400" Width="400">
  95.     <Polyline
  96.               Points="10,110 60,10 110,110"
  97.               Stroke="Black"
  98.               StrokeThickness="4" />
  99.     <Polyline
  100.               Points="10,110 110,110 110,10"
  101.               Stroke="Black"
  102.               StrokeThickness="4"
  103.               Canvas.Left="150" />
  104. </Canvas>      Canvas.Left="10"
  105. <Canvas Height="400" Width="400">
  106.     <Polyline
  107.               Points="10,110 60,10 110,110"
  108.               Stroke="Black"
  109.               StrokeThickness="4" />
  110.     <Polyline
  111.               Points="10,110 110,110 110,10"
  112.               Stroke="Black"
  113.               StrokeThickness="4"
  114.               Canvas.Left="150" />
  115. </Canvas>      Canvas.Top="100"/>
  116. </Canvas><Canvas Width="120" Height="200" >
  117.    
  118.     <Rectangle
  119. <Canvas Height="400" Width="400">
  120.     <Polyline
  121.               Points="10,110 60,10 110,110"
  122.               Stroke="Black"
  123.               StrokeThickness="4" />
  124.     <Polyline
  125.               Points="10,110 110,110 110,10"
  126.               Stroke="Black"
  127.               StrokeThickness="4"
  128.               Canvas.Left="150" />
  129. </Canvas>      Width="100" Height="50"
  130. <Canvas Height="400" Width="400">
  131.     <Polyline
  132.               Points="10,110 60,10 110,110"
  133.               Stroke="Black"
  134.               StrokeThickness="4" />
  135.     <Polyline
  136.               Points="10,110 110,110 110,10"
  137.               Stroke="Black"
  138.               StrokeThickness="4"
  139.               Canvas.Left="150" />
  140. </Canvas>      Fill="Blue"
  141. <Canvas Height="400" Width="400">
  142.     <Polyline
  143.               Points="10,110 60,10 110,110"
  144.               Stroke="Black"
  145.               StrokeThickness="4" />
  146.     <Polyline
  147.               Points="10,110 110,110 110,10"
  148.               Stroke="Black"
  149.               StrokeThickness="4"
  150.               Canvas.Left="150" />
  151. </Canvas>      Canvas.Left="10"
  152. <Canvas Height="400" Width="400">
  153.     <Polyline
  154.               Points="10,110 60,10 110,110"
  155.               Stroke="Black"
  156.               StrokeThickness="4" />
  157.     <Polyline
  158.               Points="10,110 110,110 110,10"
  159.               Stroke="Black"
  160.               StrokeThickness="4"
  161.               Canvas.Left="150" />
  162. </Canvas>      Canvas.Top="25" />
  163.    
  164.     <Rectangle
  165. <Canvas Height="400" Width="400">
  166.     <Polyline
  167.               Points="10,110 60,10 110,110"
  168.               Stroke="Black"
  169.               StrokeThickness="4" />
  170.     <Polyline
  171.               Points="10,110 110,110 110,10"
  172.               Stroke="Black"
  173.               StrokeThickness="4"
  174.               Canvas.Left="150" />
  175. </Canvas>      Width="100" Height="50"
  176. <Canvas Height="400" Width="400">
  177.     <Polyline
  178.               Points="10,110 60,10 110,110"
  179.               Stroke="Black"
  180.               StrokeThickness="4" />
  181.     <Polyline
  182.               Points="10,110 110,110 110,10"
  183.               Stroke="Black"
  184.               StrokeThickness="4"
  185.               Canvas.Left="150" />
  186. </Canvas>      Fill="Blue"
  187. <Canvas Height="400" Width="400">
  188.     <Polyline
  189.               Points="10,110 60,10 110,110"
  190.               Stroke="Black"
  191.               StrokeThickness="4" />
  192.     <Polyline
  193.               Points="10,110 110,110 110,10"
  194.               Stroke="Black"
  195.               StrokeThickness="4"
  196.               Canvas.Left="150" />
  197. </Canvas>      Stroke="Black" StrokeThickness="4"
  198. <Canvas Height="400" Width="400">
  199.     <Polyline
  200.               Points="10,110 60,10 110,110"
  201.               Stroke="Black"
  202.               StrokeThickness="4" />
  203.     <Polyline
  204.               Points="10,110 110,110 110,10"
  205.               Stroke="Black"
  206.               StrokeThickness="4"
  207.               Canvas.Left="150" />
  208. </Canvas>      RadiusX="20" RadiusY="20"
  209. <Canvas Height="400" Width="400">
  210.     <Polyline
  211.               Points="10,110 60,10 110,110"
  212.               Stroke="Black"
  213.               StrokeThickness="4" />
  214.     <Polyline
  215.               Points="10,110 110,110 110,10"
  216.               Stroke="Black"
  217.               StrokeThickness="4"
  218.               Canvas.Left="150" />
  219. </Canvas>      Canvas.Left="10"
  220. <Canvas Height="400" Width="400">
  221.     <Polyline
  222.               Points="10,110 60,10 110,110"
  223.               Stroke="Black"
  224.               StrokeThickness="4" />
  225.     <Polyline
  226.               Points="10,110 110,110 110,10"
  227.               Stroke="Black"
  228.               StrokeThickness="4"
  229.               Canvas.Left="150" />
  230. </Canvas>      Canvas.Top="100"/>
  231. </Canvas><Canvas Width="120" Height="200" >
  232.    
  233.     <Rectangle
  234. <Canvas Height="400" Width="400">
  235.     <Polyline
  236.               Points="10,110 60,10 110,110"
  237.               Stroke="Black"
  238.               StrokeThickness="4" />
  239.     <Polyline
  240.               Points="10,110 110,110 110,10"
  241.               Stroke="Black"
  242.               StrokeThickness="4"
  243.               Canvas.Left="150" />
  244. </Canvas>      Width="100" Height="50"
  245. <Canvas Height="400" Width="400">
  246.     <Polyline
  247.               Points="10,110 60,10 110,110"
  248.               Stroke="Black"
  249.               StrokeThickness="4" />
  250.     <Polyline
  251.               Points="10,110 110,110 110,10"
  252.               Stroke="Black"
  253.               StrokeThickness="4"
  254.               Canvas.Left="150" />
  255. </Canvas>      Fill="Blue"
  256. <Canvas Height="400" Width="400">
  257.     <Polyline
  258.               Points="10,110 60,10 110,110"
  259.               Stroke="Black"
  260.               StrokeThickness="4" />
  261.     <Polyline
  262.               Points="10,110 110,110 110,10"
  263.               Stroke="Black"
  264.               StrokeThickness="4"
  265.               Canvas.Left="150" />
  266. </Canvas>      Canvas.Left="10"
  267. <Canvas Height="400" Width="400">
  268.     <Polyline
  269.               Points="10,110 60,10 110,110"
  270.               Stroke="Black"
  271.               StrokeThickness="4" />
  272.     <Polyline
  273.               Points="10,110 110,110 110,10"
  274.               Stroke="Black"
  275.               StrokeThickness="4"
  276.               Canvas.Left="150" />
  277. </Canvas>      Canvas.Top="25" />
  278.    
  279.     <Rectangle
  280. <Canvas Height="400" Width="400">
  281.     <Polyline
  282.               Points="10,110 60,10 110,110"
  283.               Stroke="Black"
  284.               StrokeThickness="4" />
  285.     <Polyline
  286.               Points="10,110 110,110 110,10"
  287.               Stroke="Black"
  288.               StrokeThickness="4"
  289.               Canvas.Left="150" />
  290. </Canvas>      Width="100" Height="50"
  291. <Canvas Height="400" Width="400">
  292.     <Polyline
  293.               Points="10,110 60,10 110,110"
  294.               Stroke="Black"
  295.               StrokeThickness="4" />
  296.     <Polyline
  297.               Points="10,110 110,110 110,10"
  298.               Stroke="Black"
  299.               StrokeThickness="4"
  300.               Canvas.Left="150" />
  301. </Canvas>      Fill="Blue"
  302. <Canvas Height="400" Width="400">
  303.     <Polyline
  304.               Points="10,110 60,10 110,110"
  305.               Stroke="Black"
  306.               StrokeThickness="4" />
  307.     <Polyline
  308.               Points="10,110 110,110 110,10"
  309.               Stroke="Black"
  310.               StrokeThickness="4"
  311.               Canvas.Left="150" />
  312. </Canvas>      Stroke="Black" StrokeThickness="4"
  313. <Canvas Height="400" Width="400">
  314.     <Polyline
  315.               Points="10,110 60,10 110,110"
  316.               Stroke="Black"
  317.               StrokeThickness="4" />
  318.     <Polyline
  319.               Points="10,110 110,110 110,10"
  320.               Stroke="Black"
  321.               StrokeThickness="4"
  322.               Canvas.Left="150" />
  323. </Canvas>      RadiusX="20" RadiusY="20"
  324. <Canvas Height="400" Width="400">
  325.     <Polyline
  326.               Points="10,110 60,10 110,110"
  327.               Stroke="Black"
  328.               StrokeThickness="4" />
  329.     <Polyline
  330.               Points="10,110 110,110 110,10"
  331.               Stroke="Black"
  332.               StrokeThickness="4"
  333.               Canvas.Left="150" />
  334. </Canvas>      Canvas.Left="10"
  335. <Canvas Height="400" Width="400">
  336.     <Polyline
  337.               Points="10,110 60,10 110,110"
  338.               Stroke="Black"
  339.               StrokeThickness="4" />
  340.     <Polyline
  341.               Points="10,110 110,110 110,10"
  342.               Stroke="Black"
  343.               StrokeThickness="4"
  344.               Canvas.Left="150" />
  345. </Canvas>      Canvas.Top="100"/>
  346. </Canvas><Canvas Width="120" Height="200" >
  347.    
  348.     <Rectangle
  349. <Canvas Height="400" Width="400">
  350.     <Polyline
  351.               Points="10,110 60,10 110,110"
  352.               Stroke="Black"
  353.               StrokeThickness="4" />
  354.     <Polyline
  355.               Points="10,110 110,110 110,10"
  356.               Stroke="Black"
  357.               StrokeThickness="4"
  358.               Canvas.Left="150" />
  359. </Canvas>      Width="100" Height="50"
  360. <Canvas Height="400" Width="400">
  361.     <Polyline
  362.               Points="10,110 60,10 110,110"
  363.               Stroke="Black"
  364.               StrokeThickness="4" />
  365.     <Polyline
  366.               Points="10,110 110,110 110,10"
  367.               Stroke="Black"
  368.               StrokeThickness="4"
  369.               Canvas.Left="150" />
  370. </Canvas>      Fill="Blue"
  371. <Canvas Height="400" Width="400">
  372.     <Polyline
  373.               Points="10,110 60,10 110,110"
  374.               Stroke="Black"
  375.               StrokeThickness="4" />
  376.     <Polyline
  377.               Points="10,110 110,110 110,10"
  378.               Stroke="Black"
  379.               StrokeThickness="4"
  380.               Canvas.Left="150" />
  381. </Canvas>      Canvas.Left="10"
  382. <Canvas Height="400" Width="400">
  383.     <Polyline
  384.               Points="10,110 60,10 110,110"
  385.               Stroke="Black"
  386.               StrokeThickness="4" />
  387.     <Polyline
  388.               Points="10,110 110,110 110,10"
  389.               Stroke="Black"
  390.               StrokeThickness="4"
  391.               Canvas.Left="150" />
  392. </Canvas>      Canvas.Top="25" />
  393.    
  394.     <Rectangle
  395. <Canvas Height="400" Width="400">
  396.     <Polyline
  397.               Points="10,110 60,10 110,110"
  398.               Stroke="Black"
  399.               StrokeThickness="4" />
  400.     <Polyline
  401.               Points="10,110 110,110 110,10"
  402.               Stroke="Black"
  403.               StrokeThickness="4"
  404.               Canvas.Left="150" />
  405. </Canvas>      Width="100" Height="50"
  406. <Canvas Height="400" Width="400">
  407.     <Polyline
  408.               Points="10,110 60,10 110,110"
  409.               Stroke="Black"
  410.               StrokeThickness="4" />
  411.     <Polyline
  412.               Points="10,110 110,110 110,10"
  413.               Stroke="Black"
  414.               StrokeThickness="4"
  415.               Canvas.Left="150" />
  416. </Canvas>      Fill="Blue"
  417. <Canvas Height="400" Width="400">
  418.     <Polyline
  419.               Points="10,110 60,10 110,110"
  420.               Stroke="Black"
  421.               StrokeThickness="4" />
  422.     <Polyline
  423.               Points="10,110 110,110 110,10"
  424.               Stroke="Black"
  425.               StrokeThickness="4"
  426.               Canvas.Left="150" />
  427. </Canvas>      Stroke="Black" StrokeThickness="4"
  428. <Canvas Height="400" Width="400">
  429.     <Polyline
  430.               Points="10,110 60,10 110,110"
  431.               Stroke="Black"
  432.               StrokeThickness="4" />
  433.     <Polyline
  434.               Points="10,110 110,110 110,10"
  435.               Stroke="Black"
  436.               StrokeThickness="4"
  437.               Canvas.Left="150" />
  438. </Canvas>      RadiusX="20" RadiusY="20"
  439. <Canvas Height="400" Width="400">
  440.     <Polyline
  441.               Points="10,110 60,10 110,110"
  442.               Stroke="Black"
  443.               StrokeThickness="4" />
  444.     <Polyline
  445.               Points="10,110 110,110 110,10"
  446.               Stroke="Black"
  447.               StrokeThickness="4"
  448.               Canvas.Left="150" />
  449. </Canvas>      Canvas.Left="10"
  450. <Canvas Height="400" Width="400">
  451.     <Polyline
  452.               Points="10,110 60,10 110,110"
  453.               Stroke="Black"
  454.               StrokeThickness="4" />
  455.     <Polyline
  456.               Points="10,110 110,110 110,10"
  457.               Stroke="Black"
  458.               StrokeThickness="4"
  459.               Canvas.Left="150" />
  460. </Canvas>      Canvas.Top="100"/>
  461. </Canvas><Canvas Width="120" Height="200" >
  462.    
  463.     <Rectangle
  464. <Canvas Height="400" Width="400">
  465.     <Polyline
  466.               Points="10,110 60,10 110,110"
  467.               Stroke="Black"
  468.               StrokeThickness="4" />
  469.     <Polyline
  470.               Points="10,110 110,110 110,10"
  471.               Stroke="Black"
  472.               StrokeThickness="4"
  473.               Canvas.Left="150" />
  474. </Canvas>      Width="100" Height="50"
  475. <Canvas Height="400" Width="400">
  476.     <Polyline
  477.               Points="10,110 60,10 110,110"
  478.               Stroke="Black"
  479.               StrokeThickness="4" />
  480.     <Polyline
  481.               Points="10,110 110,110 110,10"
  482.               Stroke="Black"
  483.               StrokeThickness="4"
  484.               Canvas.Left="150" />
  485. </Canvas>      Fill="Blue"
  486. <Canvas Height="400" Width="400">
  487.     <Polyline
  488.               Points="10,110 60,10 110,110"
  489.               Stroke="Black"
  490.               StrokeThickness="4" />
  491.     <Polyline
  492.               Points="10,110 110,110 110,10"
  493.               Stroke="Black"
  494.               StrokeThickness="4"
  495.               Canvas.Left="150" />
  496. </Canvas>      Canvas.Left="10"
  497. <Canvas Height="400" Width="400">
  498.     <Polyline
  499.               Points="10,110 60,10 110,110"
  500.               Stroke="Black"
  501.               StrokeThickness="4" />
  502.     <Polyline
  503.               Points="10,110 110,110 110,10"
  504.               Stroke="Black"
  505.               StrokeThickness="4"
  506.               Canvas.Left="150" />
  507. </Canvas>      Canvas.Top="25" />
  508.    
  509.     <Rectangle
  510. <Canvas Height="400" Width="400">
  511.     <Polyline
  512.               Points="10,110 60,10 110,110"
  513.               Stroke="Black"
  514.               StrokeThickness="4" />
  515.     <Polyline
  516.               Points="10,110 110,110 110,10"
  517.               Stroke="Black"
  518.               StrokeThickness="4"
  519.               Canvas.Left="150" />
  520. </Canvas>      Width="100" Height="50"
  521. <Canvas Height="400" Width="400">
  522.     <Polyline
  523.               Points="10,110 60,10 110,110"
  524.               Stroke="Black"
  525.               StrokeThickness="4" />
  526.     <Polyline
  527.               Points="10,110 110,110 110,10"
  528.               Stroke="Black"
  529.               StrokeThickness="4"
  530.               Canvas.Left="150" />
  531. </Canvas>      Fill="Blue"
  532. <Canvas Height="400" Width="400">
  533.     <Polyline
  534.               Points="10,110 60,10 110,110"
  535.               Stroke="Black"
  536.               StrokeThickness="4" />
  537.     <Polyline
  538.               Points="10,110 110,110 110,10"
  539.               Stroke="Black"
  540.               StrokeThickness="4"
  541.               Canvas.Left="150" />
  542. </Canvas>      Stroke="Black" StrokeThickness="4"
  543. <Canvas Height="400" Width="400">
  544.     <Polyline
  545.               Points="10,110 60,10 110,110"
  546.               Stroke="Black"
  547.               StrokeThickness="4" />
  548.     <Polyline
  549.               Points="10,110 110,110 110,10"
  550.               Stroke="Black"
  551.               StrokeThickness="4"
  552.               Canvas.Left="150" />
  553. </Canvas>      RadiusX="20" RadiusY="20"
  554. <Canvas Height="400" Width="400">
  555.     <Polyline
  556.               Points="10,110 60,10 110,110"
  557.               Stroke="Black"
  558.               StrokeThickness="4" />
  559.     <Polyline
  560.               Points="10,110 110,110 110,10"
  561.               Stroke="Black"
  562.               StrokeThickness="4"
  563.               Canvas.Left="150" />
  564. </Canvas>      Canvas.Left="10"
  565. <Canvas Height="400" Width="400">
  566.     <Polyline
  567.               Points="10,110 60,10 110,110"
  568.               Stroke="Black"
  569.               StrokeThickness="4" />
  570.     <Polyline
  571.               Points="10,110 110,110 110,10"
  572.               Stroke="Black"
  573.               StrokeThickness="4"
  574.               Canvas.Left="150" />
  575. </Canvas>      Canvas.Top="100"/>
  576. </Canvas><Canvas Width="120" Height="200" >
  577.    
  578.     <Rectangle
  579. <Canvas Height="400" Width="400">
  580.     <Polyline
  581.               Points="10,110 60,10 110,110"
  582.               Stroke="Black"
  583.               StrokeThickness="4" />
  584.     <Polyline
  585.               Points="10,110 110,110 110,10"
  586.               Stroke="Black"
  587.               StrokeThickness="4"
  588.               Canvas.Left="150" />
  589. </Canvas>      Width="100" Height="50"
  590. <Canvas Height="400" Width="400">
  591.     <Polyline
  592.               Points="10,110 60,10 110,110"
  593.               Stroke="Black"
  594.               StrokeThickness="4" />
  595.     <Polyline
  596.               Points="10,110 110,110 110,10"
  597.               Stroke="Black"
  598.               StrokeThickness="4"
  599.               Canvas.Left="150" />
  600. </Canvas>      Fill="Blue"
  601. <Canvas Height="400" Width="400">
  602.     <Polyline
  603.               Points="10,110 60,10 110,110"
  604.               Stroke="Black"
  605.               StrokeThickness="4" />
  606.     <Polyline
  607.               Points="10,110 110,110 110,10"
  608.               Stroke="Black"
  609.               StrokeThickness="4"
  610.               Canvas.Left="150" />
  611. </Canvas>      Canvas.Left="10"
  612. <Canvas Height="400" Width="400">
  613.     <Polyline
  614.               Points="10,110 60,10 110,110"
  615.               Stroke="Black"
  616.               StrokeThickness="4" />
  617.     <Polyline
  618.               Points="10,110 110,110 110,10"
  619.               Stroke="Black"
  620.               StrokeThickness="4"
  621.               Canvas.Left="150" />
  622. </Canvas>      Canvas.Top="25" />
  623.    
  624.     <Rectangle
  625. <Canvas Height="400" Width="400">
  626.     <Polyline
  627.               Points="10,110 60,10 110,110"
  628.               Stroke="Black"
  629.               StrokeThickness="4" />
  630.     <Polyline
  631.               Points="10,110 110,110 110,10"
  632.               Stroke="Black"
  633.               StrokeThickness="4"
  634.               Canvas.Left="150" />
  635. </Canvas>      Width="100" Height="50"
  636. <Canvas Height="400" Width="400">
  637.     <Polyline
  638.               Points="10,110 60,10 110,110"
  639.               Stroke="Black"
  640.               StrokeThickness="4" />
  641.     <Polyline
  642.               Points="10,110 110,110 110,10"
  643.               Stroke="Black"
  644.               StrokeThickness="4"
  645.               Canvas.Left="150" />
  646. </Canvas>      Fill="Blue"
  647. <Canvas Height="400" Width="400">
  648.     <Polyline
  649.               Points="10,110 60,10 110,110"
  650.               Stroke="Black"
  651.               StrokeThickness="4" />
  652.     <Polyline
  653.               Points="10,110 110,110 110,10"
  654.               Stroke="Black"
  655.               StrokeThickness="4"
  656.               Canvas.Left="150" />
  657. </Canvas>      Stroke="Black" StrokeThickness="4"
  658. <Canvas Height="400" Width="400">
  659.     <Polyline
  660.               Points="10,110 60,10 110,110"
  661.               Stroke="Black"
  662.               StrokeThickness="4" />
  663.     <Polyline
  664.               Points="10,110 110,110 110,10"
  665.               Stroke="Black"
  666.               StrokeThickness="4"
  667.               Canvas.Left="150" />
  668. </Canvas>      RadiusX="20" RadiusY="20"
  669. <Canvas Height="400" Width="400">
  670.     <Polyline
  671.               Points="10,110 60,10 110,110"
  672.               Stroke="Black"
  673.               StrokeThickness="4" />
  674.     <Polyline
  675.               Points="10,110 110,110 110,10"
  676.               Stroke="Black"
  677.               StrokeThickness="4"
  678.               Canvas.Left="150" />
  679. </Canvas>      Canvas.Left="10"
  680. <Canvas Height="400" Width="400">
  681.     <Polyline
  682.               Points="10,110 60,10 110,110"
  683.               Stroke="Black"
  684.               StrokeThickness="4" />
  685.     <Polyline
  686.               Points="10,110 110,110 110,10"
  687.               Stroke="Black"
  688.               StrokeThickness="4"
  689.               Canvas.Left="150" />
  690. </Canvas>      Canvas.Top="100"/>
  691. </Canvas><Canvas Width="120" Height="200" >
  692.    
  693.     <Rectangle
  694. <Canvas Height="400" Width="400">
  695.     <Polyline
  696.               Points="10,110 60,10 110,110"
  697.               Stroke="Black"
  698.               StrokeThickness="4" />
  699.     <Polyline
  700.               Points="10,110 110,110 110,10"
  701.               Stroke="Black"
  702.               StrokeThickness="4"
  703.               Canvas.Left="150" />
  704. </Canvas>      Width="100" Height="50"
  705. <Canvas Height="400" Width="400">
  706.     <Polyline
  707.               Points="10,110 60,10 110,110"
  708.               Stroke="Black"
  709.               StrokeThickness="4" />
  710.     <Polyline
  711.               Points="10,110 110,110 110,10"
  712.               Stroke="Black"
  713.               StrokeThickness="4"
  714.               Canvas.Left="150" />
  715. </Canvas>      Fill="Blue"
  716. <Canvas Height="400" Width="400">
  717.     <Polyline
  718.               Points="10,110 60,10 110,110"
  719.               Stroke="Black"
  720.               StrokeThickness="4" />
  721.     <Polyline
  722.               Points="10,110 110,110 110,10"
  723.               Stroke="Black"
  724.               StrokeThickness="4"
  725.               Canvas.Left="150" />
  726. </Canvas>      Canvas.Left="10"
  727. <Canvas Height="400" Width="400">
  728.     <Polyline
  729.               Points="10,110 60,10 110,110"
  730.               Stroke="Black"
  731.               StrokeThickness="4" />
  732.     <Polyline
  733.               Points="10,110 110,110 110,10"
  734.               Stroke="Black"
  735.               StrokeThickness="4"
  736.               Canvas.Left="150" />
  737. </Canvas>      Canvas.Top="25" />
  738.    
  739.     <Rectangle
  740. <Canvas Height="400" Width="400">
  741.     <Polyline
  742.               Points="10,110 60,10 110,110"
  743.               Stroke="Black"
  744.               StrokeThickness="4" />
  745.     <Polyline
  746.               Points="10,110 110,110 110,10"
  747.               Stroke="Black"
  748.               StrokeThickness="4"
  749.               Canvas.Left="150" />
  750. </Canvas>      Width="100" Height="50"
  751. <Canvas Height="400" Width="400">
  752.     <Polyline
  753.               Points="10,110 60,10 110,110"
  754.               Stroke="Black"
  755.               StrokeThickness="4" />
  756.     <Polyline
  757.               Points="10,110 110,110 110,10"
  758.               Stroke="Black"
  759.               StrokeThickness="4"
  760.               Canvas.Left="150" />
  761. </Canvas>      Fill="Blue"
  762. <Canvas Height="400" Width="400">
  763.     <Polyline
  764.               Points="10,110 60,10 110,110"
  765.               Stroke="Black"
  766.               StrokeThickness="4" />
  767.     <Polyline
  768.               Points="10,110 110,110 110,10"
  769.               Stroke="Black"
  770.               StrokeThickness="4"
  771.               Canvas.Left="150" />
  772. </Canvas>      Stroke="Black" StrokeThickness="4"
  773. <Canvas Height="400" Width="400">
  774.     <Polyline
  775.               Points="10,110 60,10 110,110"
  776.               Stroke="Black"
  777.               StrokeThickness="4" />
  778.     <Polyline
  779.               Points="10,110 110,110 110,10"
  780.               Stroke="Black"
  781.               StrokeThickness="4"
  782.               Canvas.Left="150" />
  783. </Canvas>      RadiusX="20" RadiusY="20"
  784. <Canvas Height="400" Width="400">
  785.     <Polyline
  786.               Points="10,110 60,10 110,110"
  787.               Stroke="Black"
  788.               StrokeThickness="4" />
  789.     <Polyline
  790.               Points="10,110 110,110 110,10"
  791.               Stroke="Black"
  792.               StrokeThickness="4"
  793.               Canvas.Left="150" />
  794. </Canvas>      Canvas.Left="10"
  795. <Canvas Height="400" Width="400">
  796.     <Polyline
  797.               Points="10,110 60,10 110,110"
  798.               Stroke="Black"
  799.               StrokeThickness="4" />
  800.     <Polyline
  801.               Points="10,110 110,110 110,10"
  802.               Stroke="Black"
  803.               StrokeThickness="4"
  804.               Canvas.Left="150" />
  805. </Canvas>      Canvas.Top="100"/>
  806. </Canvas><Canvas Width="120" Height="200" >
  807.    
  808.     <Rectangle
  809. <Canvas Height="400" Width="400">
  810.     <Polyline
  811.               Points="10,110 60,10 110,110"
  812.               Stroke="Black"
  813.               StrokeThickness="4" />
  814.     <Polyline
  815.               Points="10,110 110,110 110,10"
  816.               Stroke="Black"
  817.               StrokeThickness="4"
  818.               Canvas.Left="150" />
  819. </Canvas>      Width="100" Height="50"
  820. <Canvas Height="400" Width="400">
  821.     <Polyline
  822.               Points="10,110 60,10 110,110"
  823.               Stroke="Black"
  824.               StrokeThickness="4" />
  825.     <Polyline
  826.               Points="10,110 110,110 110,10"
  827.               Stroke="Black"
  828.               StrokeThickness="4"
  829.               Canvas.Left="150" />
  830. </Canvas>      Fill="Blue"
  831. <Canvas Height="400" Width="400">
  832.     <Polyline
  833.               Points="10,110 60,10 110,110"
  834.               Stroke="Black"
  835.               StrokeThickness="4" />
  836.     <Polyline
  837.               Points="10,110 110,110 110,10"
  838.               Stroke="Black"
  839.               StrokeThickness="4"
  840.               Canvas.Left="150" />
  841. </Canvas>      Canvas.Left="10"
  842. <Canvas Height="400" Width="400">
  843.     <Polyline
  844.               Points="10,110 60,10 110,110"
  845.               Stroke="Black"
  846.               StrokeThickness="4" />
  847.     <Polyline
  848.               Points="10,110 110,110 110,10"
  849.               Stroke="Black"
  850.               StrokeThickness="4"
  851.               Canvas.Left="150" />
  852. </Canvas>      Canvas.Top="25" />
  853.    
  854.     <Rectangle
  855. <Canvas Height="400" Width="400">
  856.     <Polyline
  857.               Points="10,110 60,10 110,110"
  858.               Stroke="Black"
  859.               StrokeThickness="4" />
  860.     <Polyline
  861.               Points="10,110 110,110 110,10"
  862.               Stroke="Black"
  863.               StrokeThickness="4"
  864.               Canvas.Left="150" />
  865. </Canvas>      Width="100" Height="50"
  866. <Canvas Height="400" Width="400">
  867.     <Polyline
  868.               Points="10,110 60,10 110,110"
  869.               Stroke="Black"
  870.               StrokeThickness="4" />
  871.     <Polyline
  872.               Points="10,110 110,110 110,10"
  873.               Stroke="Black"
  874.               StrokeThickness="4"
  875.               Canvas.Left="150" />
  876. </Canvas>      Fill="Blue"
  877. <Canvas Height="400" Width="400">
  878.     <Polyline
  879.               Points="10,110 60,10 110,110"
  880.               Stroke="Black"
  881.               StrokeThickness="4" />
  882.     <Polyline
  883.               Points="10,110 110,110 110,10"
  884.               Stroke="Black"
  885.               StrokeThickness="4"
  886.               Canvas.Left="150" />
  887. </Canvas>      Stroke="Black" StrokeThickness="4"
  888. <Canvas Height="400" Width="400">
  889.     <Polyline
  890.               Points="10,110 60,10 110,110"
  891.               Stroke="Black"
  892.               StrokeThickness="4" />
  893.     <Polyline
  894.               Points="10,110 110,110 110,10"
  895.               Stroke="Black"
  896.               StrokeThickness="4"
  897.               Canvas.Left="150" />
  898. </Canvas>      RadiusX="20" RadiusY="20"
  899. <Canvas Height="400" Width="400">
  900.     <Polyline
  901.               Points="10,110 60,10 110,110"
  902.               Stroke="Black"
  903.               StrokeThickness="4" />
  904.     <Polyline
  905.               Points="10,110 110,110 110,10"
  906.               Stroke="Black"
  907.               StrokeThickness="4"
  908.               Canvas.Left="150" />
  909. </Canvas>      Canvas.Left="10"
  910. <Canvas Height="400" Width="400">
  911.     <Polyline
  912.               Points="10,110 60,10 110,110"
  913.               Stroke="Black"
  914.               StrokeThickness="4" />
  915.     <Polyline
  916.               Points="10,110 110,110 110,10"
  917.               Stroke="Black"
  918.               StrokeThickness="4"
  919.               Canvas.Left="150" />
  920. </Canvas>      Canvas.Top="100"/>
  921. </Canvas>
复制代码
上述代码中,Figures作为PathGeometry的默认属性,Segments作为PathFigure的默认属性,可以省略,简化后的代码如下所示:
  1. <Canvas Width="120" Height="200" >
  2.    
  3.     <Rectangle
  4. <Canvas Height="400" Width="400">
  5.     <Polyline
  6.               Points="10,110 60,10 110,110"
  7.               Stroke="Black"
  8.               StrokeThickness="4" />
  9.     <Polyline
  10.               Points="10,110 110,110 110,10"
  11.               Stroke="Black"
  12.               StrokeThickness="4"
  13.               Canvas.Left="150" />
  14. </Canvas>      Width="100" Height="50"
  15. <Canvas Height="400" Width="400">
  16.     <Polyline
  17.               Points="10,110 60,10 110,110"
  18.               Stroke="Black"
  19.               StrokeThickness="4" />
  20.     <Polyline
  21.               Points="10,110 110,110 110,10"
  22.               Stroke="Black"
  23.               StrokeThickness="4"
  24.               Canvas.Left="150" />
  25. </Canvas>      Fill="Blue"
  26. <Canvas Height="400" Width="400">
  27.     <Polyline
  28.               Points="10,110 60,10 110,110"
  29.               Stroke="Black"
  30.               StrokeThickness="4" />
  31.     <Polyline
  32.               Points="10,110 110,110 110,10"
  33.               Stroke="Black"
  34.               StrokeThickness="4"
  35.               Canvas.Left="150" />
  36. </Canvas>      Canvas.Left="10"
  37. <Canvas Height="400" Width="400">
  38.     <Polyline
  39.               Points="10,110 60,10 110,110"
  40.               Stroke="Black"
  41.               StrokeThickness="4" />
  42.     <Polyline
  43.               Points="10,110 110,110 110,10"
  44.               Stroke="Black"
  45.               StrokeThickness="4"
  46.               Canvas.Left="150" />
  47. </Canvas>      Canvas.Top="25" />
  48.    
  49.     <Rectangle
  50. <Canvas Height="400" Width="400">
  51.     <Polyline
  52.               Points="10,110 60,10 110,110"
  53.               Stroke="Black"
  54.               StrokeThickness="4" />
  55.     <Polyline
  56.               Points="10,110 110,110 110,10"
  57.               Stroke="Black"
  58.               StrokeThickness="4"
  59.               Canvas.Left="150" />
  60. </Canvas>      Width="100" Height="50"
  61. <Canvas Height="400" Width="400">
  62.     <Polyline
  63.               Points="10,110 60,10 110,110"
  64.               Stroke="Black"
  65.               StrokeThickness="4" />
  66.     <Polyline
  67.               Points="10,110 110,110 110,10"
  68.               Stroke="Black"
  69.               StrokeThickness="4"
  70.               Canvas.Left="150" />
  71. </Canvas>      Fill="Blue"
  72. <Canvas Height="400" Width="400">
  73.     <Polyline
  74.               Points="10,110 60,10 110,110"
  75.               Stroke="Black"
  76.               StrokeThickness="4" />
  77.     <Polyline
  78.               Points="10,110 110,110 110,10"
  79.               Stroke="Black"
  80.               StrokeThickness="4"
  81.               Canvas.Left="150" />
  82. </Canvas>      Stroke="Black" StrokeThickness="4"
  83. <Canvas Height="400" Width="400">
  84.     <Polyline
  85.               Points="10,110 60,10 110,110"
  86.               Stroke="Black"
  87.               StrokeThickness="4" />
  88.     <Polyline
  89.               Points="10,110 110,110 110,10"
  90.               Stroke="Black"
  91.               StrokeThickness="4"
  92.               Canvas.Left="150" />
  93. </Canvas>      RadiusX="20" RadiusY="20"
  94. <Canvas Height="400" Width="400">
  95.     <Polyline
  96.               Points="10,110 60,10 110,110"
  97.               Stroke="Black"
  98.               StrokeThickness="4" />
  99.     <Polyline
  100.               Points="10,110 110,110 110,10"
  101.               Stroke="Black"
  102.               StrokeThickness="4"
  103.               Canvas.Left="150" />
  104. </Canvas>      Canvas.Left="10"
  105. <Canvas Height="400" Width="400">
  106.     <Polyline
  107.               Points="10,110 60,10 110,110"
  108.               Stroke="Black"
  109.               StrokeThickness="4" />
  110.     <Polyline
  111.               Points="10,110 110,110 110,10"
  112.               Stroke="Black"
  113.               StrokeThickness="4"
  114.               Canvas.Left="150" />
  115. </Canvas>      Canvas.Top="100"/>
  116. </Canvas><Canvas Width="120" Height="200" >
  117.    
  118.     <Rectangle
  119. <Canvas Height="400" Width="400">
  120.     <Polyline
  121.               Points="10,110 60,10 110,110"
  122.               Stroke="Black"
  123.               StrokeThickness="4" />
  124.     <Polyline
  125.               Points="10,110 110,110 110,10"
  126.               Stroke="Black"
  127.               StrokeThickness="4"
  128.               Canvas.Left="150" />
  129. </Canvas>      Width="100" Height="50"
  130. <Canvas Height="400" Width="400">
  131.     <Polyline
  132.               Points="10,110 60,10 110,110"
  133.               Stroke="Black"
  134.               StrokeThickness="4" />
  135.     <Polyline
  136.               Points="10,110 110,110 110,10"
  137.               Stroke="Black"
  138.               StrokeThickness="4"
  139.               Canvas.Left="150" />
  140. </Canvas>      Fill="Blue"
  141. <Canvas Height="400" Width="400">
  142.     <Polyline
  143.               Points="10,110 60,10 110,110"
  144.               Stroke="Black"
  145.               StrokeThickness="4" />
  146.     <Polyline
  147.               Points="10,110 110,110 110,10"
  148.               Stroke="Black"
  149.               StrokeThickness="4"
  150.               Canvas.Left="150" />
  151. </Canvas>      Canvas.Left="10"
  152. <Canvas Height="400" Width="400">
  153.     <Polyline
  154.               Points="10,110 60,10 110,110"
  155.               Stroke="Black"
  156.               StrokeThickness="4" />
  157.     <Polyline
  158.               Points="10,110 110,110 110,10"
  159.               Stroke="Black"
  160.               StrokeThickness="4"
  161.               Canvas.Left="150" />
  162. </Canvas>      Canvas.Top="25" />
  163.    
  164.     <Rectangle
  165. <Canvas Height="400" Width="400">
  166.     <Polyline
  167.               Points="10,110 60,10 110,110"
  168.               Stroke="Black"
  169.               StrokeThickness="4" />
  170.     <Polyline
  171.               Points="10,110 110,110 110,10"
  172.               Stroke="Black"
  173.               StrokeThickness="4"
  174.               Canvas.Left="150" />
  175. </Canvas>      Width="100" Height="50"
  176. <Canvas Height="400" Width="400">
  177.     <Polyline
  178.               Points="10,110 60,10 110,110"
  179.               Stroke="Black"
  180.               StrokeThickness="4" />
  181.     <Polyline
  182.               Points="10,110 110,110 110,10"
  183.               Stroke="Black"
  184.               StrokeThickness="4"
  185.               Canvas.Left="150" />
  186. </Canvas>      Fill="Blue"
  187. <Canvas Height="400" Width="400">
  188.     <Polyline
  189.               Points="10,110 60,10 110,110"
  190.               Stroke="Black"
  191.               StrokeThickness="4" />
  192.     <Polyline
  193.               Points="10,110 110,110 110,10"
  194.               Stroke="Black"
  195.               StrokeThickness="4"
  196.               Canvas.Left="150" />
  197. </Canvas>      Stroke="Black" StrokeThickness="4"
  198. <Canvas Height="400" Width="400">
  199.     <Polyline
  200.               Points="10,110 60,10 110,110"
  201.               Stroke="Black"
  202.               StrokeThickness="4" />
  203.     <Polyline
  204.               Points="10,110 110,110 110,10"
  205.               Stroke="Black"
  206.               StrokeThickness="4"
  207.               Canvas.Left="150" />
  208. </Canvas>      RadiusX="20" RadiusY="20"
  209. <Canvas Height="400" Width="400">
  210.     <Polyline
  211.               Points="10,110 60,10 110,110"
  212.               Stroke="Black"
  213.               StrokeThickness="4" />
  214.     <Polyline
  215.               Points="10,110 110,110 110,10"
  216.               Stroke="Black"
  217.               StrokeThickness="4"
  218.               Canvas.Left="150" />
  219. </Canvas>      Canvas.Left="10"
  220. <Canvas Height="400" Width="400">
  221.     <Polyline
  222.               Points="10,110 60,10 110,110"
  223.               Stroke="Black"
  224.               StrokeThickness="4" />
  225.     <Polyline
  226.               Points="10,110 110,110 110,10"
  227.               Stroke="Black"
  228.               StrokeThickness="4"
  229.               Canvas.Left="150" />
  230. </Canvas>      Canvas.Top="100"/>
  231. </Canvas><Canvas Width="120" Height="200" >
  232.    
  233.     <Rectangle
  234. <Canvas Height="400" Width="400">
  235.     <Polyline
  236.               Points="10,110 60,10 110,110"
  237.               Stroke="Black"
  238.               StrokeThickness="4" />
  239.     <Polyline
  240.               Points="10,110 110,110 110,10"
  241.               Stroke="Black"
  242.               StrokeThickness="4"
  243.               Canvas.Left="150" />
  244. </Canvas>      Width="100" Height="50"
  245. <Canvas Height="400" Width="400">
  246.     <Polyline
  247.               Points="10,110 60,10 110,110"
  248.               Stroke="Black"
  249.               StrokeThickness="4" />
  250.     <Polyline
  251.               Points="10,110 110,110 110,10"
  252.               Stroke="Black"
  253.               StrokeThickness="4"
  254.               Canvas.Left="150" />
  255. </Canvas>      Fill="Blue"
  256. <Canvas Height="400" Width="400">
  257.     <Polyline
  258.               Points="10,110 60,10 110,110"
  259.               Stroke="Black"
  260.               StrokeThickness="4" />
  261.     <Polyline
  262.               Points="10,110 110,110 110,10"
  263.               Stroke="Black"
  264.               StrokeThickness="4"
  265.               Canvas.Left="150" />
  266. </Canvas>      Canvas.Left="10"
  267. <Canvas Height="400" Width="400">
  268.     <Polyline
  269.               Points="10,110 60,10 110,110"
  270.               Stroke="Black"
  271.               StrokeThickness="4" />
  272.     <Polyline
  273.               Points="10,110 110,110 110,10"
  274.               Stroke="Black"
  275.               StrokeThickness="4"
  276.               Canvas.Left="150" />
  277. </Canvas>      Canvas.Top="25" />
  278.    
  279.     <Rectangle
  280. <Canvas Height="400" Width="400">
  281.     <Polyline
  282.               Points="10,110 60,10 110,110"
  283.               Stroke="Black"
  284.               StrokeThickness="4" />
  285.     <Polyline
  286.               Points="10,110 110,110 110,10"
  287.               Stroke="Black"
  288.               StrokeThickness="4"
  289.               Canvas.Left="150" />
  290. </Canvas>      Width="100" Height="50"
  291. <Canvas Height="400" Width="400">
  292.     <Polyline
  293.               Points="10,110 60,10 110,110"
  294.               Stroke="Black"
  295.               StrokeThickness="4" />
  296.     <Polyline
  297.               Points="10,110 110,110 110,10"
  298.               Stroke="Black"
  299.               StrokeThickness="4"
  300.               Canvas.Left="150" />
  301. </Canvas>      Fill="Blue"
  302. <Canvas Height="400" Width="400">
  303.     <Polyline
  304.               Points="10,110 60,10 110,110"
  305.               Stroke="Black"
  306.               StrokeThickness="4" />
  307.     <Polyline
  308.               Points="10,110 110,110 110,10"
  309.               Stroke="Black"
  310.               StrokeThickness="4"
  311.               Canvas.Left="150" />
  312. </Canvas>      Stroke="Black" StrokeThickness="4"
  313. <Canvas Height="400" Width="400">
  314.     <Polyline
  315.               Points="10,110 60,10 110,110"
  316.               Stroke="Black"
  317.               StrokeThickness="4" />
  318.     <Polyline
  319.               Points="10,110 110,110 110,10"
  320.               Stroke="Black"
  321.               StrokeThickness="4"
  322.               Canvas.Left="150" />
  323. </Canvas>      RadiusX="20" RadiusY="20"
  324. <Canvas Height="400" Width="400">
  325.     <Polyline
  326.               Points="10,110 60,10 110,110"
  327.               Stroke="Black"
  328.               StrokeThickness="4" />
  329.     <Polyline
  330.               Points="10,110 110,110 110,10"
  331.               Stroke="Black"
  332.               StrokeThickness="4"
  333.               Canvas.Left="150" />
  334. </Canvas>      Canvas.Left="10"
  335. <Canvas Height="400" Width="400">
  336.     <Polyline
  337.               Points="10,110 60,10 110,110"
  338.               Stroke="Black"
  339.               StrokeThickness="4" />
  340.     <Polyline
  341.               Points="10,110 110,110 110,10"
  342.               Stroke="Black"
  343.               StrokeThickness="4"
  344.               Canvas.Left="150" />
  345. </Canvas>      Canvas.Top="100"/>
  346. </Canvas><Canvas Width="120" Height="200" >
  347.    
  348.     <Rectangle
  349. <Canvas Height="400" Width="400">
  350.     <Polyline
  351.               Points="10,110 60,10 110,110"
  352.               Stroke="Black"
  353.               StrokeThickness="4" />
  354.     <Polyline
  355.               Points="10,110 110,110 110,10"
  356.               Stroke="Black"
  357.               StrokeThickness="4"
  358.               Canvas.Left="150" />
  359. </Canvas>      Width="100" Height="50"
  360. <Canvas Height="400" Width="400">
  361.     <Polyline
  362.               Points="10,110 60,10 110,110"
  363.               Stroke="Black"
  364.               StrokeThickness="4" />
  365.     <Polyline
  366.               Points="10,110 110,110 110,10"
  367.               Stroke="Black"
  368.               StrokeThickness="4"
  369.               Canvas.Left="150" />
  370. </Canvas>      Fill="Blue"
  371. <Canvas Height="400" Width="400">
  372.     <Polyline
  373.               Points="10,110 60,10 110,110"
  374.               Stroke="Black"
  375.               StrokeThickness="4" />
  376.     <Polyline
  377.               Points="10,110 110,110 110,10"
  378.               Stroke="Black"
  379.               StrokeThickness="4"
  380.               Canvas.Left="150" />
  381. </Canvas>      Canvas.Left="10"
  382. <Canvas Height="400" Width="400">
  383.     <Polyline
  384.               Points="10,110 60,10 110,110"
  385.               Stroke="Black"
  386.               StrokeThickness="4" />
  387.     <Polyline
  388.               Points="10,110 110,110 110,10"
  389.               Stroke="Black"
  390.               StrokeThickness="4"
  391.               Canvas.Left="150" />
  392. </Canvas>      Canvas.Top="25" />
  393.    
  394.     <Rectangle
  395. <Canvas Height="400" Width="400">
  396.     <Polyline
  397.               Points="10,110 60,10 110,110"
  398.               Stroke="Black"
  399.               StrokeThickness="4" />
  400.     <Polyline
  401.               Points="10,110 110,110 110,10"
  402.               Stroke="Black"
  403.               StrokeThickness="4"
  404.               Canvas.Left="150" />
  405. </Canvas>      Width="100" Height="50"
  406. <Canvas Height="400" Width="400">
  407.     <Polyline
  408.               Points="10,110 60,10 110,110"
  409.               Stroke="Black"
  410.               StrokeThickness="4" />
  411.     <Polyline
  412.               Points="10,110 110,110 110,10"
  413.               Stroke="Black"
  414.               StrokeThickness="4"
  415.               Canvas.Left="150" />
  416. </Canvas>      Fill="Blue"
  417. <Canvas Height="400" Width="400">
  418.     <Polyline
  419.               Points="10,110 60,10 110,110"
  420.               Stroke="Black"
  421.               StrokeThickness="4" />
  422.     <Polyline
  423.               Points="10,110 110,110 110,10"
  424.               Stroke="Black"
  425.               StrokeThickness="4"
  426.               Canvas.Left="150" />
  427. </Canvas>      Stroke="Black" StrokeThickness="4"
  428. <Canvas Height="400" Width="400">
  429.     <Polyline
  430.               Points="10,110 60,10 110,110"
  431.               Stroke="Black"
  432.               StrokeThickness="4" />
  433.     <Polyline
  434.               Points="10,110 110,110 110,10"
  435.               Stroke="Black"
  436.               StrokeThickness="4"
  437.               Canvas.Left="150" />
  438. </Canvas>      RadiusX="20" RadiusY="20"
  439. <Canvas Height="400" Width="400">
  440.     <Polyline
  441.               Points="10,110 60,10 110,110"
  442.               Stroke="Black"
  443.               StrokeThickness="4" />
  444.     <Polyline
  445.               Points="10,110 110,110 110,10"
  446.               Stroke="Black"
  447.               StrokeThickness="4"
  448.               Canvas.Left="150" />
  449. </Canvas>      Canvas.Left="10"
  450. <Canvas Height="400" Width="400">
  451.     <Polyline
  452.               Points="10,110 60,10 110,110"
  453.               Stroke="Black"
  454.               StrokeThickness="4" />
  455.     <Polyline
  456.               Points="10,110 110,110 110,10"
  457.               Stroke="Black"
  458.               StrokeThickness="4"
  459.               Canvas.Left="150" />
  460. </Canvas>      Canvas.Top="100"/>
  461. </Canvas><Canvas Width="120" Height="200" >
  462.    
  463.     <Rectangle
  464. <Canvas Height="400" Width="400">
  465.     <Polyline
  466.               Points="10,110 60,10 110,110"
  467.               Stroke="Black"
  468.               StrokeThickness="4" />
  469.     <Polyline
  470.               Points="10,110 110,110 110,10"
  471.               Stroke="Black"
  472.               StrokeThickness="4"
  473.               Canvas.Left="150" />
  474. </Canvas>      Width="100" Height="50"
  475. <Canvas Height="400" Width="400">
  476.     <Polyline
  477.               Points="10,110 60,10 110,110"
  478.               Stroke="Black"
  479.               StrokeThickness="4" />
  480.     <Polyline
  481.               Points="10,110 110,110 110,10"
  482.               Stroke="Black"
  483.               StrokeThickness="4"
  484.               Canvas.Left="150" />
  485. </Canvas>      Fill="Blue"
  486. <Canvas Height="400" Width="400">
  487.     <Polyline
  488.               Points="10,110 60,10 110,110"
  489.               Stroke="Black"
  490.               StrokeThickness="4" />
  491.     <Polyline
  492.               Points="10,110 110,110 110,10"
  493.               Stroke="Black"
  494.               StrokeThickness="4"
  495.               Canvas.Left="150" />
  496. </Canvas>      Canvas.Left="10"
  497. <Canvas Height="400" Width="400">
  498.     <Polyline
  499.               Points="10,110 60,10 110,110"
  500.               Stroke="Black"
  501.               StrokeThickness="4" />
  502.     <Polyline
  503.               Points="10,110 110,110 110,10"
  504.               Stroke="Black"
  505.               StrokeThickness="4"
  506.               Canvas.Left="150" />
  507. </Canvas>      Canvas.Top="25" />
  508.    
  509.     <Rectangle
  510. <Canvas Height="400" Width="400">
  511.     <Polyline
  512.               Points="10,110 60,10 110,110"
  513.               Stroke="Black"
  514.               StrokeThickness="4" />
  515.     <Polyline
  516.               Points="10,110 110,110 110,10"
  517.               Stroke="Black"
  518.               StrokeThickness="4"
  519.               Canvas.Left="150" />
  520. </Canvas>      Width="100" Height="50"
  521. <Canvas Height="400" Width="400">
  522.     <Polyline
  523.               Points="10,110 60,10 110,110"
  524.               Stroke="Black"
  525.               StrokeThickness="4" />
  526.     <Polyline
  527.               Points="10,110 110,110 110,10"
  528.               Stroke="Black"
  529.               StrokeThickness="4"
  530.               Canvas.Left="150" />
  531. </Canvas>      Fill="Blue"
  532. <Canvas Height="400" Width="400">
  533.     <Polyline
  534.               Points="10,110 60,10 110,110"
  535.               Stroke="Black"
  536.               StrokeThickness="4" />
  537.     <Polyline
  538.               Points="10,110 110,110 110,10"
  539.               Stroke="Black"
  540.               StrokeThickness="4"
  541.               Canvas.Left="150" />
  542. </Canvas>      Stroke="Black" StrokeThickness="4"
  543. <Canvas Height="400" Width="400">
  544.     <Polyline
  545.               Points="10,110 60,10 110,110"
  546.               Stroke="Black"
  547.               StrokeThickness="4" />
  548.     <Polyline
  549.               Points="10,110 110,110 110,10"
  550.               Stroke="Black"
  551.               StrokeThickness="4"
  552.               Canvas.Left="150" />
  553. </Canvas>      RadiusX="20" RadiusY="20"
  554. <Canvas Height="400" Width="400">
  555.     <Polyline
  556.               Points="10,110 60,10 110,110"
  557.               Stroke="Black"
  558.               StrokeThickness="4" />
  559.     <Polyline
  560.               Points="10,110 110,110 110,10"
  561.               Stroke="Black"
  562.               StrokeThickness="4"
  563.               Canvas.Left="150" />
  564. </Canvas>      Canvas.Left="10"
  565. <Canvas Height="400" Width="400">
  566.     <Polyline
  567.               Points="10,110 60,10 110,110"
  568.               Stroke="Black"
  569.               StrokeThickness="4" />
  570.     <Polyline
  571.               Points="10,110 110,110 110,10"
  572.               Stroke="Black"
  573.               StrokeThickness="4"
  574.               Canvas.Left="150" />
  575. </Canvas>      Canvas.Top="100"/>
  576. </Canvas><Canvas Width="120" Height="200" >
  577.    
  578.     <Rectangle
  579. <Canvas Height="400" Width="400">
  580.     <Polyline
  581.               Points="10,110 60,10 110,110"
  582.               Stroke="Black"
  583.               StrokeThickness="4" />
  584.     <Polyline
  585.               Points="10,110 110,110 110,10"
  586.               Stroke="Black"
  587.               StrokeThickness="4"
  588.               Canvas.Left="150" />
  589. </Canvas>      Width="100" Height="50"
  590. <Canvas Height="400" Width="400">
  591.     <Polyline
  592.               Points="10,110 60,10 110,110"
  593.               Stroke="Black"
  594.               StrokeThickness="4" />
  595.     <Polyline
  596.               Points="10,110 110,110 110,10"
  597.               Stroke="Black"
  598.               StrokeThickness="4"
  599.               Canvas.Left="150" />
  600. </Canvas>      Fill="Blue"
  601. <Canvas Height="400" Width="400">
  602.     <Polyline
  603.               Points="10,110 60,10 110,110"
  604.               Stroke="Black"
  605.               StrokeThickness="4" />
  606.     <Polyline
  607.               Points="10,110 110,110 110,10"
  608.               Stroke="Black"
  609.               StrokeThickness="4"
  610.               Canvas.Left="150" />
  611. </Canvas>      Canvas.Left="10"
  612. <Canvas Height="400" Width="400">
  613.     <Polyline
  614.               Points="10,110 60,10 110,110"
  615.               Stroke="Black"
  616.               StrokeThickness="4" />
  617.     <Polyline
  618.               Points="10,110 110,110 110,10"
  619.               Stroke="Black"
  620.               StrokeThickness="4"
  621.               Canvas.Left="150" />
  622. </Canvas>      Canvas.Top="25" />
  623.    
  624.     <Rectangle
  625. <Canvas Height="400" Width="400">
  626.     <Polyline
  627.               Points="10,110 60,10 110,110"
  628.               Stroke="Black"
  629.               StrokeThickness="4" />
  630.     <Polyline
  631.               Points="10,110 110,110 110,10"
  632.               Stroke="Black"
  633.               StrokeThickness="4"
  634.               Canvas.Left="150" />
  635. </Canvas>      Width="100" Height="50"
  636. <Canvas Height="400" Width="400">
  637.     <Polyline
  638.               Points="10,110 60,10 110,110"
  639.               Stroke="Black"
  640.               StrokeThickness="4" />
  641.     <Polyline
  642.               Points="10,110 110,110 110,10"
  643.               Stroke="Black"
  644.               StrokeThickness="4"
  645.               Canvas.Left="150" />
  646. </Canvas>      Fill="Blue"
  647. <Canvas Height="400" Width="400">
  648.     <Polyline
  649.               Points="10,110 60,10 110,110"
  650.               Stroke="Black"
  651.               StrokeThickness="4" />
  652.     <Polyline
  653.               Points="10,110 110,110 110,10"
  654.               Stroke="Black"
  655.               StrokeThickness="4"
  656.               Canvas.Left="150" />
  657. </Canvas>      Stroke="Black" StrokeThickness="4"
  658. <Canvas Height="400" Width="400">
  659.     <Polyline
  660.               Points="10,110 60,10 110,110"
  661.               Stroke="Black"
  662.               StrokeThickness="4" />
  663.     <Polyline
  664.               Points="10,110 110,110 110,10"
  665.               Stroke="Black"
  666.               StrokeThickness="4"
  667.               Canvas.Left="150" />
  668. </Canvas>      RadiusX="20" RadiusY="20"
  669. <Canvas Height="400" Width="400">
  670.     <Polyline
  671.               Points="10,110 60,10 110,110"
  672.               Stroke="Black"
  673.               StrokeThickness="4" />
  674.     <Polyline
  675.               Points="10,110 110,110 110,10"
  676.               Stroke="Black"
  677.               StrokeThickness="4"
  678.               Canvas.Left="150" />
  679. </Canvas>      Canvas.Left="10"
  680. <Canvas Height="400" Width="400">
  681.     <Polyline
  682.               Points="10,110 60,10 110,110"
  683.               Stroke="Black"
  684.               StrokeThickness="4" />
  685.     <Polyline
  686.               Points="10,110 110,110 110,10"
  687.               Stroke="Black"
  688.               StrokeThickness="4"
  689.               Canvas.Left="150" />
  690. </Canvas>      Canvas.Top="100"/>
  691. </Canvas><Canvas Width="120" Height="200" >
  692.    
  693.     <Rectangle
  694. <Canvas Height="400" Width="400">
  695.     <Polyline
  696.               Points="10,110 60,10 110,110"
  697.               Stroke="Black"
  698.               StrokeThickness="4" />
  699.     <Polyline
  700.               Points="10,110 110,110 110,10"
  701.               Stroke="Black"
  702.               StrokeThickness="4"
  703.               Canvas.Left="150" />
  704. </Canvas>      Width="100" Height="50"
  705. <Canvas Height="400" Width="400">
  706.     <Polyline
  707.               Points="10,110 60,10 110,110"
  708.               Stroke="Black"
  709.               StrokeThickness="4" />
  710.     <Polyline
  711.               Points="10,110 110,110 110,10"
  712.               Stroke="Black"
  713.               StrokeThickness="4"
  714.               Canvas.Left="150" />
  715. </Canvas>      Fill="Blue"
  716. <Canvas Height="400" Width="400">
  717.     <Polyline
  718.               Points="10,110 60,10 110,110"
  719.               Stroke="Black"
  720.               StrokeThickness="4" />
  721.     <Polyline
  722.               Points="10,110 110,110 110,10"
  723.               Stroke="Black"
  724.               StrokeThickness="4"
  725.               Canvas.Left="150" />
  726. </Canvas>      Canvas.Left="10"
  727. <Canvas Height="400" Width="400">
  728.     <Polyline
  729.               Points="10,110 60,10 110,110"
  730.               Stroke="Black"
  731.               StrokeThickness="4" />
  732.     <Polyline
  733.               Points="10,110 110,110 110,10"
  734.               Stroke="Black"
  735.               StrokeThickness="4"
  736.               Canvas.Left="150" />
  737. </Canvas>      Canvas.Top="25" />
  738.    
  739.     <Rectangle
  740. <Canvas Height="400" Width="400">
  741.     <Polyline
  742.               Points="10,110 60,10 110,110"
  743.               Stroke="Black"
  744.               StrokeThickness="4" />
  745.     <Polyline
  746.               Points="10,110 110,110 110,10"
  747.               Stroke="Black"
  748.               StrokeThickness="4"
  749.               Canvas.Left="150" />
  750. </Canvas>      Width="100" Height="50"
  751. <Canvas Height="400" Width="400">
  752.     <Polyline
  753.               Points="10,110 60,10 110,110"
  754.               Stroke="Black"
  755.               StrokeThickness="4" />
  756.     <Polyline
  757.               Points="10,110 110,110 110,10"
  758.               Stroke="Black"
  759.               StrokeThickness="4"
  760.               Canvas.Left="150" />
  761. </Canvas>      Fill="Blue"
  762. <Canvas Height="400" Width="400">
  763.     <Polyline
  764.               Points="10,110 60,10 110,110"
  765.               Stroke="Black"
  766.               StrokeThickness="4" />
  767.     <Polyline
  768.               Points="10,110 110,110 110,10"
  769.               Stroke="Black"
  770.               StrokeThickness="4"
  771.               Canvas.Left="150" />
  772. </Canvas>      Stroke="Black" StrokeThickness="4"
  773. <Canvas Height="400" Width="400">
  774.     <Polyline
  775.               Points="10,110 60,10 110,110"
  776.               Stroke="Black"
  777.               StrokeThickness="4" />
  778.     <Polyline
  779.               Points="10,110 110,110 110,10"
  780.               Stroke="Black"
  781.               StrokeThickness="4"
  782.               Canvas.Left="150" />
  783. </Canvas>      RadiusX="20" RadiusY="20"
  784. <Canvas Height="400" Width="400">
  785.     <Polyline
  786.               Points="10,110 60,10 110,110"
  787.               Stroke="Black"
  788.               StrokeThickness="4" />
  789.     <Polyline
  790.               Points="10,110 110,110 110,10"
  791.               Stroke="Black"
  792.               StrokeThickness="4"
  793.               Canvas.Left="150" />
  794. </Canvas>      Canvas.Left="10"
  795. <Canvas Height="400" Width="400">
  796.     <Polyline
  797.               Points="10,110 60,10 110,110"
  798.               Stroke="Black"
  799.               StrokeThickness="4" />
  800.     <Polyline
  801.               Points="10,110 110,110 110,10"
  802.               Stroke="Black"
  803.               StrokeThickness="4"
  804.               Canvas.Left="150" />
  805. </Canvas>      Canvas.Top="100"/>
  806. </Canvas><Canvas Width="120" Height="200" >
  807.    
  808.     <Rectangle
  809. <Canvas Height="400" Width="400">
  810.     <Polyline
  811.               Points="10,110 60,10 110,110"
  812.               Stroke="Black"
  813.               StrokeThickness="4" />
  814.     <Polyline
  815.               Points="10,110 110,110 110,10"
  816.               Stroke="Black"
  817.               StrokeThickness="4"
  818.               Canvas.Left="150" />
  819. </Canvas>      Width="100" Height="50"
  820. <Canvas Height="400" Width="400">
  821.     <Polyline
  822.               Points="10,110 60,10 110,110"
  823.               Stroke="Black"
  824.               StrokeThickness="4" />
  825.     <Polyline
  826.               Points="10,110 110,110 110,10"
  827.               Stroke="Black"
  828.               StrokeThickness="4"
  829.               Canvas.Left="150" />
  830. </Canvas>      Fill="Blue"
  831. <Canvas Height="400" Width="400">
  832.     <Polyline
  833.               Points="10,110 60,10 110,110"
  834.               Stroke="Black"
  835.               StrokeThickness="4" />
  836.     <Polyline
  837.               Points="10,110 110,110 110,10"
  838.               Stroke="Black"
  839.               StrokeThickness="4"
  840.               Canvas.Left="150" />
  841. </Canvas>      Canvas.Left="10"
  842. <Canvas Height="400" Width="400">
  843.     <Polyline
  844.               Points="10,110 60,10 110,110"
  845.               Stroke="Black"
  846.               StrokeThickness="4" />
  847.     <Polyline
  848.               Points="10,110 110,110 110,10"
  849.               Stroke="Black"
  850.               StrokeThickness="4"
  851.               Canvas.Left="150" />
  852. </Canvas>      Canvas.Top="25" />
  853.    
  854.     <Rectangle
  855. <Canvas Height="400" Width="400">
  856.     <Polyline
  857.               Points="10,110 60,10 110,110"
  858.               Stroke="Black"
  859.               StrokeThickness="4" />
  860.     <Polyline
  861.               Points="10,110 110,110 110,10"
  862.               Stroke="Black"
  863.               StrokeThickness="4"
  864.               Canvas.Left="150" />
  865. </Canvas>      Width="100" Height="50"
  866. <Canvas Height="400" Width="400">
  867.     <Polyline
  868.               Points="10,110 60,10 110,110"
  869.               Stroke="Black"
  870.               StrokeThickness="4" />
  871.     <Polyline
  872.               Points="10,110 110,110 110,10"
  873.               Stroke="Black"
  874.               StrokeThickness="4"
  875.               Canvas.Left="150" />
  876. </Canvas>      Fill="Blue"
  877. <Canvas Height="400" Width="400">
  878.     <Polyline
  879.               Points="10,110 60,10 110,110"
  880.               Stroke="Black"
  881.               StrokeThickness="4" />
  882.     <Polyline
  883.               Points="10,110 110,110 110,10"
  884.               Stroke="Black"
  885.               StrokeThickness="4"
  886.               Canvas.Left="150" />
  887. </Canvas>      Stroke="Black" StrokeThickness="4"
  888. <Canvas Height="400" Width="400">
  889.     <Polyline
  890.               Points="10,110 60,10 110,110"
  891.               Stroke="Black"
  892.               StrokeThickness="4" />
  893.     <Polyline
  894.               Points="10,110 110,110 110,10"
  895.               Stroke="Black"
  896.               StrokeThickness="4"
  897.               Canvas.Left="150" />
  898. </Canvas>      RadiusX="20" RadiusY="20"
  899. <Canvas Height="400" Width="400">
  900.     <Polyline
  901.               Points="10,110 60,10 110,110"
  902.               Stroke="Black"
  903.               StrokeThickness="4" />
  904.     <Polyline
  905.               Points="10,110 110,110 110,10"
  906.               Stroke="Black"
  907.               StrokeThickness="4"
  908.               Canvas.Left="150" />
  909. </Canvas>      Canvas.Left="10"
  910. <Canvas Height="400" Width="400">
  911.     <Polyline
  912.               Points="10,110 60,10 110,110"
  913.               Stroke="Black"
  914.               StrokeThickness="4" />
  915.     <Polyline
  916.               Points="10,110 110,110 110,10"
  917.               Stroke="Black"
  918.               StrokeThickness="4"
  919.               Canvas.Left="150" />
  920. </Canvas>      Canvas.Top="100"/>
  921. </Canvas><Canvas Width="120" Height="200" >
  922.    
  923.     <Rectangle
  924. <Canvas Height="400" Width="400">
  925.     <Polyline
  926.               Points="10,110 60,10 110,110"
  927.               Stroke="Black"
  928.               StrokeThickness="4" />
  929.     <Polyline
  930.               Points="10,110 110,110 110,10"
  931.               Stroke="Black"
  932.               StrokeThickness="4"
  933.               Canvas.Left="150" />
  934. </Canvas>      Width="100" Height="50"
  935. <Canvas Height="400" Width="400">
  936.     <Polyline
  937.               Points="10,110 60,10 110,110"
  938.               Stroke="Black"
  939.               StrokeThickness="4" />
  940.     <Polyline
  941.               Points="10,110 110,110 110,10"
  942.               Stroke="Black"
  943.               StrokeThickness="4"
  944.               Canvas.Left="150" />
  945. </Canvas>      Fill="Blue"
  946. <Canvas Height="400" Width="400">
  947.     <Polyline
  948.               Points="10,110 60,10 110,110"
  949.               Stroke="Black"
  950.               StrokeThickness="4" />
  951.     <Polyline
  952.               Points="10,110 110,110 110,10"
  953.               Stroke="Black"
  954.               StrokeThickness="4"
  955.               Canvas.Left="150" />
  956. </Canvas>      Canvas.Left="10"
  957. <Canvas Height="400" Width="400">
  958.     <Polyline
  959.               Points="10,110 60,10 110,110"
  960.               Stroke="Black"
  961.               StrokeThickness="4" />
  962.     <Polyline
  963.               Points="10,110 110,110 110,10"
  964.               Stroke="Black"
  965.               StrokeThickness="4"
  966.               Canvas.Left="150" />
  967. </Canvas>      Canvas.Top="25" />
  968.    
  969.     <Rectangle
  970. <Canvas Height="400" Width="400">
  971.     <Polyline
  972.               Points="10,110 60,10 110,110"
  973.               Stroke="Black"
  974.               StrokeThickness="4" />
  975.     <Polyline
  976.               Points="10,110 110,110 110,10"
  977.               Stroke="Black"
  978.               StrokeThickness="4"
  979.               Canvas.Left="150" />
  980. </Canvas>      Width="100" Height="50"
  981. <Canvas Height="400" Width="400">
  982.     <Polyline
  983.               Points="10,110 60,10 110,110"
  984.               Stroke="Black"
  985.               StrokeThickness="4" />
  986.     <Polyline
  987.               Points="10,110 110,110 110,10"
  988.               Stroke="Black"
  989.               StrokeThickness="4"
  990.               Canvas.Left="150" />
  991. </Canvas>      Fill="Blue"
  992. <Canvas Height="400" Width="400">
  993.     <Polyline
  994.               Points="10,110 60,10 110,110"
  995.               Stroke="Black"
  996.               StrokeThickness="4" />
  997.     <Polyline
  998.               Points="10,110 110,110 110,10"
  999.               Stroke="Black"
  1000.               StrokeThickness="4"
  1001.               Canvas.Left="150" />
  1002. </Canvas>      Stroke="Black" StrokeThickness="4"
  1003. <Canvas Height="400" Width="400">
  1004.     <Polyline
  1005.               Points="10,110 60,10 110,110"
  1006.               Stroke="Black"
  1007.               StrokeThickness="4" />
  1008.     <Polyline
  1009.               Points="10,110 110,110 110,10"
  1010.               Stroke="Black"
  1011.               StrokeThickness="4"
  1012.               Canvas.Left="150" />
  1013. </Canvas>      RadiusX="20" RadiusY="20"
  1014. <Canvas Height="400" Width="400">
  1015.     <Polyline
  1016.               Points="10,110 60,10 110,110"
  1017.               Stroke="Black"
  1018.               StrokeThickness="4" />
  1019.     <Polyline
  1020.               Points="10,110 110,110 110,10"
  1021.               Stroke="Black"
  1022.               StrokeThickness="4"
  1023.               Canvas.Left="150" />
  1024. </Canvas>      Canvas.Left="10"
  1025. <Canvas Height="400" Width="400">
  1026.     <Polyline
  1027.               Points="10,110 60,10 110,110"
  1028.               Stroke="Black"
  1029.               StrokeThickness="4" />
  1030.     <Polyline
  1031.               Points="10,110 110,110 110,10"
  1032.               Stroke="Black"
  1033.               StrokeThickness="4"
  1034.               Canvas.Left="150" />
  1035. </Canvas>      Canvas.Top="100"/>
  1036. </Canvas>
复制代码
下图显示了呈现的形状。

上述代码相对比较复杂,如果要设计一个复杂的图形,则可能要几十上百行代码,所以在XAML中,还有一种简化写法,如下所示:
  1. [/code]生成的形状如下所示:
  2. [align=center][/align]
  3. 关于Path中Data的语法知识,可以不必死记硬背,只需要了解即可。
  4.  
  5. [size=6]可拉伸的形状(Stretch)[/size]
  6.  
  7. Shape及其派生类,都有Stretch属性,可用于填充布局空间,常见属性如下:
  8. [list]
  9. [*]None:不会拉伸 Shape 对象的内容。
  10. [*]Fill:将拉伸 Shape 对象的内容以填充其布局空间。 不保留纵横比。
  11. [*]Uniform:最大程度地拉伸 Shape 对象的内容以填充布局空间,同时保留原始纵横比。
  12. [*]UniformToFill:拉伸 Shape 对象的内容以填满布局空间,同时保留原始纵横比。
  13. [/list]Stretch设置示例如下所示:
  14. [code]
复制代码
在上述示例中,使用了 Polygon 来绘制从 (0,0) 到 (0,1) 再到 (1,1) 的一个很小的三角形。 Polygon 对象的 Width 和 Height 设置为 100,其拉伸属性设置为 Fill。 因此,Polygon 对象的内容(三角形)被拉伸以填充更大的空间。

以上就是《不可不知的WPF形状(Shape)》的全部内容,具体内容可参考官网:https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/graphics-multimedia/shapes?view=netframeworkdesktop-4.8

来源:https://www.cnblogs.com/hsiang/p/18390859
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
来自手机

举报 回复 使用道具