WPF realize drag
effect
-
<Grid>
-
<Grid.ColumnDefinitions>
-
<ColumnDefinition Width=
"197*"/>
-
<ColumnDefinition Width=
"209*"/>
-
<ColumnDefinition Width=
"111*"/>
-
</Grid.ColumnDefinitions>
-
<WrapPanel x:Name=
"accept" HorizontalAlignment=
"Left" Height=
"320" VerticalAlignment=
"Top" Width=
"207" Grid.Column=
"1" Margin=
"2,0,0,0" Background=
"#FFE7FFE5" Drop=
"WrapPanel_Drop" AllowDrop=
"True" />
-
<WrapPanel x:Name=
"send" HorizontalAlignment=
"Left" Height=
"320" VerticalAlignment=
"Top" Width=
"197" Background=
"#FFFFEDCD" MouseLeftButtonDown=
"WrapPanel_MouseLeftButtonDown">
-
<Label Content=
"Label1" Height=
"31" Width=
"51" Background=
"#FFDCA1A1" Margin=
"5"/>
-
<Label Content=
"Label2" Height=
"31" Width=
"51" Background=
"#FFDCA1A1" Margin=
"5"/>
-
<Label Content=
"Label3" Height=
"31" Width=
"51" Background=
"#FFDCA1A1" Margin=
"5"/>
-
<Label Content=
"Label4" Height=
"31" Width=
"51" Background=
"#FFDCA1A1" Margin=
"5"/>
-
<Label Content=
"Label5" Height=
"31" Width=
"51" Background=
"#FFDCA1A1" Margin=
"5"/>
-
<Label Content=
"Label6" Height=
"31" Width=
"51" Background=
"#FFDCA1A1" Margin=
"5"/>
-
</WrapPanel>
-
-
</Grid>
-
private void WrapPanel_Drop(object sender, DragEventArgs e)
-
{
-
-
var item = e.Data;
-
object data = item.GetData(item.GetFormats()[
0]);
-
if (data
is UIElement)
-
{
-
send.Children.Remove(data
as UIElement);
-
accept.Children.Add(data
as UIElement);
-
}
-
-
}
-
-
private void WrapPanel_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
-
{
-
object item = e.Source;
-
if (item
is UIElement)
-
{
-
DragDrop.DoDragDrop(item
as UIElement, item, DragDropEffects.Move);
-
}
-
}
accept one control need to add AllowDrop = "True" allows the drop of the received data