zoukankan      html  css  js  c++  java
  • WPF之快速实现拖拽功能

    场景:工具栏上有很多图标(一个图标代表一种控件),可以左键按下图标,然后拖拽到设计区域创建一个个的控件。

    实现:1.给工具栏上的图标添加MouseLeftDown和MouseMove事件,前者事件是为了告诉Move事件我的确按下了左键,同时也可以在MouseDown事件中初始化一些标识;在后者       中经过自己的逻辑判断,看看是否可以拖拽了(一般就是判断自己的标识,比如是否按下了左键,这样的判断),如果可以则加入如下代码:

        DragDrop.DoDragDrop(sourceControl, data, DragDropEffects.Copy);

       第一个参数就是进行拖拽的控件,第二个参数就是通过拖拽传递的数据(object类型,想怎么传就怎么传),第三个就是一个拖拽特效,具体的值查看MSDN。

      2.给目标区域添加Drop事件和DropEnter事件,第一个事件中就是处理拖拽后要干嘛,也就是松开鼠标左键的一瞬间做的事件;第二个事件呢,就是拖拽状态进入目标区域并    且没有释放之前执行的操作,也就是说可以在Enter事件中进行一些操作或处理,使当前的操作达到可以拖拽的条件。

      DragEventArgs.Data.GetData(typeof(T));

    也就是在Drop或者DropEnter中可以通过拖拽事件参数得到拖拽时候传递的数据,也就是步骤1中的第二个参数,通过GetData可以得到执行类型的数据(可能是没有的哦,因为你要和你传递时候的类型匹配才行的哦),然后你就可以做你想做的事情了。

    好了,这个也就这么多东西,具体的应用大家多思考、多看看MSDN吧。

  • 相关阅读:
    小*号
    进制转换升级版
    对角线的值
    使用Arduino开发板控制步进电机
    使用VisualGDB和OpenOCD调试STM32L0开发板
    基于STM32L476开发板的USB音频设备
    【FRDM-K64F学习笔记】使用ARM mbed和Keil MDK下载你的第一个程序
    使用超声波传感器HC-SR04检测障碍物
    使用Atmel Studio编程Arduino Uno开发板
    重新编程Hexiwear Docking Station扩展坞
  • 原文地址:https://www.cnblogs.com/ListenFly/p/3586274.html
Copyright © 2011-2022 走看看