WPF:可以用几何绘图来绘制圆吗?

pdsfdshx  于 2023-01-21  发布在  其他
关注(0)|答案(2)|浏览(145)

我有一个类似这样的GeometryDrawing:

<DrawingImage x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type wpfhlp:FokusGroupBox},ResourceId=IconTest}">
  <DrawingImage.Drawing>
    <DrawingGroup>
      <GeometryDrawing Brush="Black" Geometry="M0,260 L0,600 L110,670 L110,500 L190,550 L190,710 L300,775 L300,430 L150,175"/>
    </DrawingGroup>
  </DrawingImage.Drawing>
</DrawingImage>

现在我想画一个圆,但是我只能找到移动命令,画一条线,没有画圆的命令。
有什么方法可以让GeometryDrawing画圆吗?

cngwdvgl

cngwdvgl1#

....
<GeometryDrawing Brush="Black">
    <GeometryDrawing.Geometry>
        <EllipseGeometry Center="0,0" RadiusX="1" RadiusY="1" />
    </GeometryDrawing.Geometry>
</GeometryDrawing>

或者,也可以使用Path Markup Syntax绘制两个椭圆弧(圆的上半部分和下半部分):

<GeometryDrawing Brush="Black" Geometry="M -1,0 A 1,1 0 1 1 1,0 M -1,0 A 1,1 0 1 0 1,0" />

如果你想知道,这就是那些神秘的绘图说明的意思:

  • M -1,0:从点(-1,0)开始绘制。
  • A 1,1 0 1 1 1,0:画一条半径为(1,1)的椭圆弧到点(1,0),中间的一位数标志表示:无旋转(0)、180°或更大的Angular (1)、正Angular 方向(1,表示clockwise)。这将生成圆的上半部分。
  • M -1,0:在点(-1,0)处重新开始绘制
  • A 1,1 0 1 0 1,0:绘制与以前相同的圆弧,只是这次是沿负Angular 方向(0,表示逆时针)。
fkvaft9z

fkvaft9z2#

<Path Stretch="Fill" 
      Fill="Transparent" 
      Stroke="Black" 
      StrokeThickness="5" 
      Data="M 0,0 A 180,180 180 1 1 1,1 Z"/>

相关问题