2017-04-09 145 views
0

如何在WPF中創建自定義形狀?例如,我正試圖在cavas上繪製彼此連接的多個符號。我需要每個符號來改變顏色。我將如何創建讓我們說一個可以改變顏色的自定義形狀。我們來說說我想要將以下兩種形狀合爲一體。我將如何去,把它們封裝如何使用WPF中的屬性製作自定義形狀?

<Ellipse x:Name="theEllipse" 
       Height="89" 
       Width="82" 
       Fill="Black" 
       Canvas.Left="32" 
       Canvas.Top="75" /> 

<Ellipse x:Name="theEllipse" 
       Height="89" 
       Width="82" 
       Fill="Black" 
       Canvas.Left="32" 
       Canvas.Top="75" /> 

下面提供確實與然而省略號工作方案, 它不與下面的圖工作:

 <Line X1="10" 
       Y1="50" 
       X2="50" 
       Y2="50" 
       Stroke="Black" 
       StrokeThickness="2" /> 
     <Line X1="15" 
       Y1="55" 
       X2="45" 
       Y2="55" 
       Stroke="Black" 
       StrokeThickness="2" /> 

     <Line X1="20" 
       Y1="60" 
       X2="40" 
       Y2="60" 
       Stroke="Black" 
       StrokeThickness="2" /> 

回答

1

您可以在Blend做到這一點。

  1. 選擇兩個橢圓/在對象和時間線形狀窗口
  2. 上選擇右鍵單擊
  3. 轉到路徑 - >使複合路徑

enter image description here


更新2017年4月10日

如果你想要這個操作與所有形狀和線條的工作,你必須確保你的元素是一個Canvas裏面,不是一個GridStackPanel。元素的父容器很重要。

因此,在3行的情況下,將它們包裝在Canvas中並運行再次使複合路徑的操作。

<Canvas> 
    <Line X1="10" 
      Y1="50" 
      X2="50" 
      Y2="50" 
      Stroke="Black" 
      StrokeThickness="2" /> 
    <Line X1="15" 
      Y1="55" 
      X2="45" 
      Y2="55" 
      Stroke="Black" 
      StrokeThickness="2" /> 

    <Line X1="20" 
      Y1="60" 
      X2="40" 
      Y2="60" 
      Stroke="Black" 
      StrokeThickness="2" /> 
</Canvas> 

這是它應該是什麼樣子後:

<Canvas> 
    <Path Data="M1,1 L41,1 M6.00001,6 L36,6 M11,11 L31,11" 
      Height="12" 
      Canvas.Left="9" 
      Stretch="Fill" 
      Stroke="Black" 
      StrokeThickness="2" 
      Canvas.Top="49" 
      UseLayoutRounding="False" 
      Width="42" /> 
</Canvas> 
+0

順便說只是試圖做的線相同,它沒有工作 –

+0

我做的這一點。我所有的線元素都在畫布內。我選擇三行,右鍵單擊它們的路徑 - >建立複合路徑。他們變成一條線。不知道我在做什麼錯 –

+0

嘗試在一個空的'Page或UserControl'上。也許還有其他一些小組正在阻礙。 – Laith

相關問題