WPF拖拽效果实现

  Silverlight的版本不断更新.当然有些很不错的功能和属性添加进来并进一步得到完善. 例如拖拽. 在Silverlight 3.0版本以前是不直接支持拖拽效果. 同样在Ria运用中我也对比一个Flex实现拖拽方式, 其实就是利用一个DragManager类,这是一个像StartDrag静态方法的类,你只需
  Silverlight的版本不断更新.当然有些很不错的功能和属性添加进来并进一步得到完善. 例如拖拽. 在Silverlight 3.0版本以前是不直接支持拖拽效果. 同样在Ria运用中我也对比一个Flex实现拖拽方式, 其实就是利用一个DragManager类,这是一个像StartDrag静态方法的类,你只需要提供一个 UIComponent对象 ,DragManager就会创建一个微小的透明图像跟随鼠标,跟随鼠标的图像经过组件 上时会很形像的表明是否允许接受拖拽对象. 实现拖拽效果.
  在Silverlight 3.0中做过拖拽效果应该知道, 当你分析了Drag拖拽效果步骤. 在silverlight 3.0以前中实现的 难点核心是如何保持生成的代理形象与鼠标进行同步. 而 在4.0中大大增强了控件之间的拖拽行为.现在在Silverlight 4中, 针对所有的UIElement对象,增加了一个AllowDrop属性 设置为True,我们甚至可以把实体档案拖曳到浏览器上正在执行的Silverlight应用程序中.相比3.0 足以激动人心. 转入正题Silverlight 4下拖拽效果实现.
  实现效果: 从一个listbox某一个子项移动到另外一个listbox中.
  A:在拖放控件之前添加一个Toolkit空间引用: B:拖入第一个ListBox.注意是包含在toolKit:ListBoxDragDropTarget控件中,并设置 AllowDrop="True" 1
  2 Height="200" Width="200"
  3 DisplayMemberPath="Name">
  4
  5
  6
  7
  8
  9
  10
  其实在去年Silverlight 4.0还是Beta版本时. 这个AllowDrop并没有被直接作为ListBoxDragDropTarget 属性来定义.silverlight 4.0 Beta版本实现AllowDrop是通过引用空间: 在定义toolKit:ListBoxDragDropTarget 控件设置属性为mswindows 下的DragDrop.AllowDrop="True".当然4.0正式版后不用这么做 则直接通过在每个UIElement中设置Bool类型AllowDrop属性,更加简便 C:拖入第二个接受ListBox基本可第一个雷同: 1
  2 Height="200" Width="200" DisplayMemberPath="Name">
  3
  4
  5
  6
  7
  8
  9
  D:绑定数据源.为了达到演示Drag效果的演示目的,定义一个Person类.类中只有一个属性Name. 通过在PersonDataProvider类中定义一个方法提供一个ObservableCollection集合数据.绑定到第一个[customerListBoxMain ]ListBox中.
  
  1 public class PersonDataProvider
  2 {
  3 public static ObservableCollection GetData()
  4 {
  5 return new ObservableCollection
  6 {
  7 new Person { Name = "Akash Sharma" },
  8 new Person { Name = "Vinay Sen" },
  9 new Person { Name = "Lalit Narayan" },
  10 new Person { Name = "Madhumita Chatterjee" },
  11 new Person { Name = "Priyanka Patil" },
  12 new Person { Name = "Kumar Sanu" },
  13 new Person { Name = "Victor Kapoor" },
  14 new Person { Name = "Shymal Sen" },
  15 new Person { Name = "Alan D'Souza" },
  16 new Person { Name = "Kamal Saha" },
  17 new Person { Name = "Alex Chan" },
  18 new Person { Name = "Rohit Sharma" },
  19 new Person { Name = "Dipti Sen" },
  20 new Person { Name = "Dinesh Sharma" },
  21 new Person { Name = "Kamal Kapoor" },
  22 new Person { Name = "Raj Kapoor" },
  23 new Person { Name = "Deepa Karmakar" },
  24 new Person { Name = "Sarmishtha Chakrobarty" },
  25 new Person { Name = "Pranab Kumar Debnath" },
  26 new Person { Name = "Hiral Grover" },
  27 new Person { Name = "Munmun Patel" },
  28 new Person { Name = "Santosh Kumar Sen" },
  29 new Person { Name = "Sandeep Debnath" }
  30 };
  31 }
  32 }
  MainPage后台中进行数据绑定: 绑定完成后.编译通过开始运行 先看看效果.
  
  ok.silverlight 4.0中实现拖拽如此简单.当使用了ListBoxDragDropTarget控件后
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值