【问题标题】:Why arc angle has no effect为什么圆弧角没有影响
【发布时间】:2015-07-11 06:35:19
【问题描述】:

在 WPF Path 中,我为 Data 属性设置了以下值:

Path="M0,0 L300,0 A300,300 X 0 1 210.7,210.7 z"

根据文档,X 是 旋转角度。无论我为X 指定什么值,生成的形状都保持不变。我在这里做错了什么?

如果有人想尝试,这里有一个简单的可重现示例。只需在 Visual Studio 中创建一个新的 WPF 应用程序项目并将以下内容粘贴到 Window1 中:

<Window x:Class="DiagramDesigner.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window2" Height="500" Width="500">
    <Canvas>
        <Path Canvas.Left="100" Canvas.Top="100" Data="M0,0 L300,0 A300,300 X 0 1 210.7,210.7 z" Stroke="Black"></Path>
    </Canvas>
</Window>

输入任何你想要的数字来代替上面的X,你会得到相同的结果。

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

    绘制的弧线是椭圆轮廓的一部分。 WPF 从路径中的前一点到新点绘制椭圆的一部分。旋转角度控制圆弧所在的椭圆旋转的角度,因为椭圆不一定在水平和垂直方向上有长轴和短轴。

    在你的例子中,椭圆的 X 半径和 Y 半径都是300,所以你有一个圆弧。不管你如何旋转一个圆圈,它看起来总是一样的。所以如果你想取一个圆的一部分的弧,旋转角度没有区别。

    为了更清楚地演示非圆形椭圆会发生什么,请尝试更改以下路径中的角度:

        <Path Canvas.Left="100" Canvas.Top="100" Data="M0,0 A100,50 0 0 1 0,200" Stroke="Green" StrokeThickness="4" />
    

    【讨论】:

    • 我明白了。我希望使用该角度值来控制我的弧线的宽度(例如,90 度将创建一个四分之一饼,而 180 度将创建一个半圆)。但看起来我们不能为此目的使用角度。有没有其他方法可以做到这一点,所以我不知道我的弧线的终点,但我知道弧线的中心在哪里,弧线的两侧有多长以及它们之间的角度是多少两侧。我可以使用该信息来制作馅饼吗?
    • 感觉很幸运。我的问题是地址here。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 2013-01-18
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    相关资源
    最近更新 更多