XAML路径 - 在不使用弧的情况下绘制圆

时间:2017-03-29 06:49:19

标签: wpf xaml

在WPF应用程序中,我知道我可以使用以下路径语法绘制一个圆圈:

<Path
    Stretch="Fill"
    StrokeThickness="1"
    Data="M -1,0 A 1,1 0 1 1 1,0 M -1,0 A 1,1 0 1 0 1,0" />

但是,我正在使用尚不支持Arcs(C# & XAML for HTML5)的编译器。

如何在不使用Arcs的情况下绘制此圆圈? 解决方案是逐点绘制 - 基本上是六角形,给予还是采用?

2 个答案:

答案 0 :(得分:5)

比绘制Ellipse元素更好的方法是使用EllipseGeometry

而不是顶部/左对齐,您的绘图以特定坐标为中心。此外,StrokeThickness有助于椭圆的总宽度和高度,而几何精确定义渲染的形状。

<Path Stretch="Fill" StrokeThickness="1">
    <Path.Data>
        <EllipseGeometry Center="0,0" RadiusX="1" RadiusY="1"/>
    </Path.Data>
</Path>

答案 1 :(得分:1)

如果你想绘制一个圆圈,你可以将Ellpise绘制为评论中提到的@lokusking。你可以这样做。

 <Ellipse Stroke="Black" StrokeThickness="1" Fill="Black"></Ellipse>

如果你想绘制更复杂的东西,请使用画布并逐行绘制图形。这是六边形的例子。

<Viewbox Width="200" Height="200">
      <Canvas Width="400" Height="400">
         <Line
            Stroke="Black"
            StrokeThickness="2"
            X1="0"
            X2="200"
            Y1="100"
            Y2="0"/>
         <Line
            Stroke="Black"
            StrokeThickness="2"
            X1="200"
            X2="400"
            Y1="0"
            Y2="100"/>
         <Line
            Stroke="Black"
            StrokeThickness="2"
            X1="400"
            X2="400"
            Y1="100"
            Y2="300"/>
         <Line
            Stroke="Black"
            StrokeThickness="2"
            X1="400"
            X2="200"
            Y1="300"
            Y2="400"/>
         <Line
            Stroke="Black"
            StrokeThickness="2"
            X1="200"
            X2="0"
            Y1="400"
            Y2="300"/>
         <Line
            Stroke="Black"
            StrokeThickness="2"
            X1="0"
            X2="0"
            Y1="300"
            Y2="100"/>
      </Canvas>
   </Viewbox>

希望它有所帮助。