silverlight拖拽控件简介
在Microsoft Silverlight 4 Toolkit April 2010中有一些定义好的拖拽控件;包括ListBoxDragDropTarget、TreeViewDragDropTarget、DataPointSeriesDragDropTarge;这里面ListBoxDragDropTarget、TreeViewDragDropTarget比较常用。DataPointSeriesDragDropTarge主要应用在图形中;
对于TreeViewDragDropTarget控件主要应用两个事件
TreeViewDragDropTarget_ItemDragStarting--拖拽执行前触发事件
TreeViewDragDropTarget_ItemDroppedOnTarget--拖拽执行后触发事件
事件的对象为
ItemDragEventArgs
里面有
e.Cancel = true;
e.Handled=true;
设置这两个值用于取消事件;
应用控件该控件步骤:
步骤1:
<controlsToolkit:TreeViewDragDropTarget Grid.Column="1" Grid.Row="1" AllowDrop="true" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" ItemDragStarting="TreeViewDragDropTarget_ItemDragStarting" ItemDroppedOnTarget="TreeViewDragDropTarget_ItemDroppedOnTarget" >
<sdk:TreeView Name="treeControl" Grid.Row="0" SelectedItemChanged="treeControl_SelectedItemChanged" Background="#FFF0F0F0" AllowDrop="False">
</sdk:TreeView>
</controlsToolkit:TreeViewDragDropTarget>
步骤2:
设置拖拽目标控件
AllowDrop属性为true;
步骤3:
定义两个事件
TreeViewDragDropTarget_ItemDragStarting--拖拽执行前触发事件
TreeViewDragDropTarget_ItemDroppedOnTarget--拖拽执行后触发事件
步骤4:
拖拽控件的时候默认是将树种的Item中移除;
要想不移除在TreeViewDragDropTarget_ItemDroppedOnTarget
中设置e.Cancel = true;
e.Handled=true;则树形控件中的Item不改变