2015-07-10 121 views
0

在WPF Path,我有以下的值设置为Data属性:为什么圆弧角没有影响

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

其中X是根据文档的旋转角度。不管我为X指定什么值,所得到的形状都保持不变。我在这里做错了什么?

这里是简单的可重复的样本,如果任何人想尝试。只需创建在Visual Studio中一个新的WPF应用程序项目并粘贴在窗口1以下:

<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上述所希望的任何号码,你会得到相同的结果。

回答

0

绘制的弧是椭圆轮廓的一部分。 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" /> 
+0

我明白了。我希望使用这个角度值来控制弧线的宽度(例如90度会创建四分之一馅饼,180会创建一个半圈)。但看起来我们不能使用角度来达到这个目的。有没有其他方法可以做到这一点,所以我不知道弧的终点,但我知道弧的中心在哪里,弧的两边有多长,以及弧的两边之间的夹角是多少?双方。我可以使用这些信息来创建一个饼图吗? – dotNET

+0

感觉很幸运。我的问题已经解决[这里](http://stackoverflow.com/questions/16667072/how-to-draw-arc-with-radius-and-start-and-stop-angle)。谢谢你的帮助。 – dotNET