如何爲WPF應用程序實現拖放&拖放?我可以打開2個相同的應用程序並將對象從一個拖動到另一個。這是我想拖什麼:WPF拖放
<Grid Width="100" Height="50">
<Rectangle BackGround="Red"/>
<TextBlock>Hello World</TextBlock>
</Grid>
網格具有看起來相同在它被拖到作爲一個從它拖了其他應用程序。任何解決方案
如何爲WPF應用程序實現拖放&拖放?我可以打開2個相同的應用程序並將對象從一個拖動到另一個。這是我想拖什麼:WPF拖放
<Grid Width="100" Height="50">
<Rectangle BackGround="Red"/>
<TextBlock>Hello World</TextBlock>
</Grid>
網格具有看起來相同在它被拖到作爲一個從它拖了其他應用程序。任何解決方案
我已經使用過龔解決方案拖放成功,它是一個非常容易使用的DLL。你可以在這裏看到的是一個小樣本:Gong Solutions
例如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
使用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>