WPF 拖放功能

wpf中实现拖放功能和winform中实现的功能有所差异,步骤简述如下:

1.目标控件需要设置AllowDrop=‘True’

2.目标控件需要注册Drop事件,在该事件中,将拖动到该控件中的数据进行处理,获取数据可使用e.Data.GetData(typeof(MyClass))

3.源控件注册MouseMove事件,在该事件中,启动拖拽行为:DragDrop.DoDragDrop.

代码示例:

 

 private void coilTreeView_MouseMove(object sender, MouseEventArgs e)
  {
      if (sender is TreeView treeView && e.LeftButton == MouseButtonState.Pressed && coilTreeView.SelectedItem != null)
      {
          DragDrop.DoDragDrop(coilTreeView, coilTreeView.SelectedItem, DragDropEffects.Move);
      }
  }
 private void Grid_DragEnter(object sender, DragEventArgs e)
 {
     if (e.Data.GetData(typeof(MyModel)) is MyModel)
     {
         e.Effects = DragDropEffects.Copy;
     }
 }
 private void Label_Drop(object sender, DragEventArgs e)
 {
     if (e.Data.GetDataPresent(typeof(MyModel)))
     {
         Label lb = sender as Label;

         var data = (MyModel)e.Data.GetData(typeof(MyModel));
         lb.Content = data.....;//获取需要数据
     }
 }

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值