silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了WPF拖拽效果实现大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

Silverlight的版本不断更新.当然有些很不错的功能和属性添加进来并进一步得到完善. 例如拖拽. 在Silverlight 3.0版本以前是不直接支持拖拽效果. 同样在Ria运用中我也对比一个Flex实现拖拽方式, 其实就是利用一个DragManager类,这是一个像StartDrag静态方法的类,你只需 Silverlight的版本不断更新.当然有些很不错的功能和属性添加进来并进一步得到完
Silverlight的版本不断更新.当然有些很不错的功能属性添加进来并进一步得到完善. 例如拖拽. 在Silverlight 3.0版本以前是不直接支持拖拽效果. 同样在Ria运用中我也对比一个Flex实现拖拽方式,其实就是利用一个DragManager类,这是一个像StartDrag静态方法的类,你只需

Silverlight的版本不断更新.当然有些很不错的功能属性添加进来并进一步得到完善. 例如拖拽. 在Silverlight 3.0版本以前是不直接支持拖拽效果. 同样在Ria运用中我也对比一个Flex实现拖拽方式,这是一个像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空间引用:

1   xmlns:toolKit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit">

B:拖入第一个ListBox.注意是包含在toolKit:ListBoxDragDropTarget 控件 中,并设置  AllowDrop ="True"  

 1          < toolKit:ListBoxDragDropTarget  AllowDrop ="True" >
 2                    < ListBox  x:Name ="customerList@L_172_30@main"  Height ="200"  Width ="200"  
 3                               DisplaymemberPath ="Name" >
 4                        < ListBox.ItemsPanel >
 5                            < ItemsPanelTemplate >
 6                                < StackPanel  Orientation ="Vertical" />
 7                            </ ItemsPanelTemplate >
 8                        </ ListBox.ItemsPanel >
 9                    </ ListBox >
10          </ toolKit:ListBoxDragDropTarget >

其实在去年Silverlight 4.0还是Beta版本时. 这个AllowDrop并没有被直接作为ListBoxDragDropTarget 属性来定义.silverlight 4.0 Beta版本实现AllowDrop是通过引用空间:

1    xmlns:mswindows="clr-namespace:Microsoft.Windows;assembly=System.Windows.Controls.Toolkit"

在定义toolKit:ListBoxDragDropTarget 控件设置属性为@H_827_60@mswindows 下的DragDrop.AllowDrop ="True".当然4.0正式版后不用这么做 则直接通过在每个UIElement中设置Bool类型AllowDrop属性,更加简便

1   < toolkit:ListBoxDragDropTarget  @H_827_60@mswindows:DragDrop.AllowDrop ="True" >   <!-- 包含ListBox控件 -->   </ toolkit:ListBoxDragDropTarget >

C:拖入第二个接受ListBox基本可第一个雷同:

1     < toolKit:ListBoxDragDropTarget  AllowDrop ="True" >
2                    < ListBox  x:Name ="AcceptListBox"  Height ="200"  Width ="200"  DisplaymemberPath ="Name" >
3                        < ListBox.ItemsPanel >
4                            < ItemsPanelTemplate >
5                                < StackPanel  Orientation ="Vertical" />
6                            </ ItemsPanelTemplate >
7                        </ ListBox.ItemsPanel >
8                    </ ListBox >
9     </ toolKit:ListBoxDragDropTarget >

D:绑定数据源.为了达到演示Drag效果的演示目的,定义一个Person类.类中只有一个属性Name.

1      public   class  Person
2       {
3            public   String  NAME {  get set ; }
4       }

通过在PersonDataProvider类中定义一个方法提供一个ObservableCollection<Person>集合数据.绑定到第一个[customerList@L_172_30@main ]ListBox中.

WPF拖拽效果实现

代码
 1     public   class  PersonDataProvider
 2       {
 3            public   static  ObservableCollection < Person >  GetData()
 4           {
 5                return   new  ObservableCollection < Person >
 6                           {
 7                                new  Person { NAME  =   " Akash Sharma "  },
 8                                new  Person { NAME  =   " Vinay Sen "  },
 9                                new  Person { NAME  =   " Lalit Narayan "  },
10                                new  Person { NAME  =   " @H_857_29@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  =   " @H_857_29@munmun Patel "  },
28                                new  Person { NAME  =   " Santosh Kumar Sen "  },
29                                new  Person { NAME  =   " Sandeep Debnath "  }
30                           };
31           }
32       }
@H_551_20@mainPage后台中进行数据绑定:

1     public  MainPage()
2      {
3          InitializeComponent();
4          customerList@L_172_30@main.Itemssourc =  PersonDataProvider.GetData();
6      }

 绑定完成后.编译通过开始运行 先看看效果.

WPF拖拽效果实现

ok.silverlight 4.0中实现拖拽如此简单.当使用了ListBoxDragDropTarget控件后

大佬总结

以上是大佬教程为你收集整理的WPF拖拽效果实现全部内容,希望文章能够帮你解决WPF拖拽效果实现所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。