2012-06-19 44 views
4

如何將XAML代碼(代表一組形狀)更改爲由PATH提供的單個圖形?XAML中從形狀到路徑的轉換

比方說,我們有XAML代碼,如:

<Ellipse Fill="#FF0A0A0E" HorizontalAlignment="Left" Margin="192,184,0,0" 
      Stroke="Black" Width="8" Height="8" VerticalAlignment="Top"/> 
    <Rectangle Fill="Black" HorizontalAlignment="Left" Margin="152,187.5,0,0" 
      Stroke="Black" Width="89.5" Height="1" VerticalAlignment="Top"/> 

,並需要將其轉換成一個單一的路徑對象?

我試圖用混合4它允許你轉換塑造成路徑,但然後上面的代碼轉化爲:

<Path Data="M7.5,4 C7.5,5.9329966 5.9329966,7.5 4,7.5 C2.0670034,7.5 0.5,5.9329966 0.5,4 C0.5,2.0670034 2.0670034,0.5 4,0.5 C5.9329966,0.5 7.5,2.0670034 7.5,4 z" 
     Fill="#FF0A0A0E" HorizontalAlignment="Left" Height="8" Margin="192,184,0,0" 
     Stretch="Fill" Stroke="Black" VerticalAlignment="Top" Width="8"/> 
<Path Data="M0.5,0.5 L89,0.5 z" Fill="Black" HorizontalAlignment="Left" Height="1" 
     Margin="152,187.5,0,0" Stretch="Fill" Stroke="Black" VerticalAlignment="Top" 
     Width="89.5" /> 

的原因,我提出這個問題,是因爲我只可以定義只有一個路徑。如我錯了請糾正我。如果是這樣,那麼我怎樣才能在一種風格中嵌入2個或更多路徑?

回答

2

您可以通過按住Ctrl兩種形狀組合成一個Path與Expression Blend的4

要做到這一點,選擇這兩個奧姆或切換

enter image description here

之後,選擇對象 - >合併 - >團結

而在你的情況下,它會輸出這個

<Path Data="M44,0.5 C45.932995,0.50000024 47.5,2.0670036 47.5,4.0000002 L89,4.0000002 89,4.0100003 47.499496,4.0100003 47.48193,4.3578544 C47.302696,6.122751 45.812183,7.5000002 44,7.5000002 42.187817,7.5000002 40.697304,6.122751 40.51807,4.3578544 L40.500504,4.0100003 0.5,4.0100003 0.5,4.0000002 40.5,4.0000002 C40.5,2.0670036 42.067005,0.50000024 44,0.5 z" 
     Fill="Black" 
     HorizontalAlignment="Left" 
     Height="8" 
     Margin="152,184,0,0" 
     Stretch="Fill" 
     Stroke="Black" 
     VerticalAlignment="Top" 
     Width="89.5"/> 

請注意,如果矩形Height恰好爲1,則存在此錯誤。然後它會消失。要解決這個剛剛成立Height喜歡的東西1.00001

<Rectangle Fill="Black" HorizontalAlignment="Left" Margin="152,187.5,0,0" 
     Stroke="Black" Width="89.5" Height="1.00001" VerticalAlignment="Top"/> 
+0

事實上,這是一個很大的幫助。謝謝!!! –

0

可以用一個數據字段來執行多個單獨的路徑。例如:

<Path Data="M0,0 L 10,10 L 20, 10 L 20,0 z M 100,5 L 110,15 L 120,15 L 120,5 z" 
     Stroke="Black" Fill="Red" /> 

但是,假設你想的一樣FillStroke等兩件,這是不是在你的榜樣的情況。