【问题标题】:XAML Path - Draw a Circle without using ArcsXAML 路径 - 不使用弧线绘制圆
【发布时间】:2017-03-29 06:49:18
【问题描述】:

在 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) 的编译器。

如何在不使用弧线的情况下绘制这个圆? 逐点绘制项目的解决方案 - 本质上是一个六边形,给予还是接受?

【问题讨论】:

  • 画一个Ellipse怎么样?

标签: wpf xaml


【解决方案1】:

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

您的绘图不是上/左对齐,而是以特定坐标为中心。此外,StrokeThickness 对 Ellipse 的总宽度和高度有贡献,而 Geometry 则准确定义了渲染的形状。

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

【讨论】:

    【解决方案2】:

    如果你想画一个圆,你可以像 cmets 中提到的@lokusking 一样画 Ellpise。你可以这样弄。

     <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>
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多