2017-04-19 98 views
0

所以我試圖製作一個程序,允許用戶使用WPF中不同功能的模塊設計簡單程序。WPF - 如何以編程方式在自定義控件之間繪製線條

我創建的自定義控件我的模塊,像這樣:

<Border Height="75" Width="150" BorderThickness="1" BorderBrush="Black"> 
    <Grid Background="Gray" Height="75" Width ="150"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="1*"/> 
      <RowDefinition Height="2*"/> 
     </Grid.RowDefinitions> 
     <Label Content="Double" FontSize="12" Grid.Row="0" HorizontalContentAlignment="Center" Background="Aquamarine"/> 
     <Grid Grid.Row="1"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition/> 
       <ColumnDefinition Width="3*"/> 
       <ColumnDefinition/> 
      </Grid.ColumnDefinitions> 
      <Button Name="IncomingConnection" Height="15" Width="15" Background="Black" Margin="5" VerticalAlignment="Top" HorizontalAlignment="Left"/> 

      <Button Name="OutgoingConnection" Grid.Column="2" Height="15" Width="15" VerticalAlignment="Top" Background="Black" Margin="5" HorizontalAlignment="Right"/> 
      <Button Name="OutgoingData" Grid.Column="2" Height="15" Width="15" VerticalAlignment="Bottom" Background="Aquamarine" Margin="5" HorizontalAlignment="Right"/> 
     </Grid> 
    </Grid> 
</Border> 

不管怎麼說,我希望能夠點擊這些按鈕(incomingConnection或outgoingConnection)中的一個,並有連接線兩個按鈕。

其他信息:自定義控件全部放在拇指內,以便可以拖動它們。一切都在畫布上。我不想在控件之間創建一條線,而是在控件上的按鈕之間創建一條線。

謝謝!

+0

你試了一下自己?你有沒有實現一些[命令](http://stackoverflow.com/questions/7660547/how-to-create-bindable-commands-in-custom-control)? –

+0

大部分只是研究,我發現可能工作的所有東西似乎是整個控件的專屬,而不是針對特定的按鈕。我試圖在按下按鈕時獲取該按鈕的點,但是一旦控件被拖動到其他地方,該按鈕就不起作用。 –

回答

0

我將有一個包含兩個端點的x和y座標的線的類。我會將每行的實例放入視圖模型的列表中。然後以Canvas作爲模板,使用綁定到該屬性的ItemsControl。然後,您可以使用WPF Line控件作爲ItemTemplateItemsControl。您可以將Line控件的X1,Y1,X2Y2綁定到在開始時創建的行類的端點屬性。

使用該設置,您只需將行類的實例添加到列表中,它們就會自動顯示在Canvas上。

相關問題