2015-07-10 118 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