WPF 实现拖拽
效果
-
<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 一方的控件 需要加上 AllowDrop="True" 允许接收drop的数据