2008年8月4日星期一

在Silverlight中绘制和填充椭圆弧

在Silverlight中画椭圆弧

以下给出了一个画椭圆弧的XAML示例,PathStrokeStrokeThickness属性定义了弧线的颜色和宽度,PathFigureStartPoint属性定义了弧线的起点,ArcSegment则定义了以下弧线属性:

Size : 椭圆的X,Y 半径
Point : 弧线的终点
IsLargeArc : 弧度是否大于180度
SweepDirection : 弧线方向(顺时针或逆时针)

<Path Stroke="Red" StrokeThickness="1">
  <Path.Data>
    <PathGeometry>
      <PathFigure
        StartPoint="201.08848540793832,
                    53.183541121547776">
        <ArcSegment
            SweepDirection="CounterClockwise"
            Size="100,80"
            Point="38.91151459206168,
                   53.183541121547776"
            IsLargeArc="false" />
      </PathFigure>
    </PathGeometry>
  </Path.Data>
</Path>

在Silverlight中填充椭圆弧

以下给出了一个填充椭圆弧的XAML示例,PathStrokeStrokeThickness属性定义了弧线的颜色和宽度,Fill则定义了填充色,PathFigureStartPoint属性定义了椭圆的中心点,第一个LineSegmentPoint定义了弧线的起点,其后的ArcSegment定义了椭圆弧的大小,终点,方向,是否大于180度等属性,最后的LineSegment则连接了椭圆弧的终点和椭圆的中心点。

<Path Stroke="Red"
  StrokeThickness="1" Fill="Blue">
  <Path.Data>
    <PathGeometry>
      <PathFigure StartPoint="120,100">
        <LineSegment
          Point="201.08848540793832,
                 53.183541121547776" />
        <ArcSegment
          SweepDirection="CounterClockwise"
          Size="100,80"
          Point="38.91151459206168,
                 53.183541121547776"
          IsLargeArc="false" />
        <LineSegment Point="120,100" />
      </PathFigure>
    </PathGeometry>
  </Path.Data>
</Path>


上述方法可以用于饼图等图形的绘制。

没有评论: