2011-05-31 107 views
1

如何爲WPF應用程序實現拖放&拖放?我可以打開2個相同的應用程序並將對象從一個拖動到另一個。這是我想拖什麼:WPF拖放

<Grid Width="100" Height="50"> 
<Rectangle BackGround="Red"/> 
<TextBlock>Hello World</TextBlock> 
</Grid> 

網格具有看起來相同在它被拖到作爲一個從它拖了其他應用程序。任何解決方案

回答

1

我已經使用過龔解決方案拖放成功,它是一個非常容易使用的DLL。你可以在這裏看到的是一個小樣本:Gong Solutions

-1

例如WPF拖放:用vb.net 2010

 <Window 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="mofakfree" 
     Title="drop test " Height="359" Width="329"> 
     <Grid> 
       <Label x:Name="label2" AllowDrop="True" Margin="159,30,12,0" Background="#FF1900FF" Content="To Here" DragEnter="label2_DragEnter" Drop="label2_Drop" Height="51" VerticalAlignment="Top" /> 
       <Label x:Name="label1" AllowDrop="True" Margin="26,30,158,240" Background="#FFDE2626" Content="source" MouseDown="label1_MouseDown"/> 
     </Grid> 
     </Window> 

vb.net代碼:

Class mofakfree 



     Private Sub label1_MouseDown(ByVal sender as Object, ByVal e as System.Windows.Input.MouseButtonEventArgs) 
      'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
      Dim lbl As Label = CType(sender, Label) 
      DragDrop.DoDragDrop(lbl, lbl.Content, DragDropEffects.Copy) 
     End Sub 

     Private Sub label2_DragEnter(ByVal sender as Object, ByVal e as System.Windows.DragEventArgs) 
      'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
      If e.Data.GetDataPresent(DataFormats.Text) Then 
     e.Effects = DragDropEffects.Copy 
      Else 
      e.Effects = DragDropEffects.None 
     End If 

     End Sub 

     Private Sub label2_Drop(ByVal sender as Object, ByVal e as System.Windows.DragEventArgs) 
      'xxxxxxxxxxxxxxxxxx 
      CType(sender, Label).Content = e.Data.GetData(DataFormats.Text) 

     End Sub 

    End Class 
1

使用a行爲:

你需要像這樣的標記:

<Window xmlns:i= 
"clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
xmlns:custom= 
"clr-namespace:CustomBehaviorsLibrary;assembly=CustomBehaviorsLibrary > 

例如:

<Canvas> 
<Rectangle Canvas.Left="10" Canvas.Top="10" Fill="Yellow" Width="40" Height="60"> 
</Rectangle> 
<Ellipse Canvas.Left="10" Canvas.Top="70" Fill="Blue" Width="80" Height="60"> 
<i:Interaction.Behaviors> 
<custom:DragInCanvasBehavior></custom:DragInCanvasBehavior> 
</i:Interaction.Behaviors> 
</Ellipse> 
<Ellipse Canvas.Left="80" Canvas.Top="70" Fill="OrangeRed" Width="40" Height="70"> 
<i:Interaction.Behaviors> 
<custom:DragInCanvasBehavior></custom:DragInCanvasBehavior> 
</i:Interaction.Behaviors> 
</Ellipse>