DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) 方法——控件拖动方法

参数

dragSource
DependencyObject

对依赖项对象的引用(该对象是被拖动数据的源)。

data
Object

包含被拖动数据的数据对象。

allowedEffects
DragDropEffects

DragDropEffects 值中的一个,指定拖放操作的允许效果。

返回

DragDropEffects 值中的一个,指定在拖放操作期间执行的最终效果。

例外

dragSource 或 data 为 null

示例

下面的示例显示了如何从 Ellipse 元素的 MouseMove 事件处理程序中启动拖放操作,以将其作为拖动源。 传输的数据是椭圆 Fill 属性的字符串表示形式。 数据作为字符串传递给 方法, DoDragDrop 并自动包装在 中 DataObject

复制代码
private void ellipse_MouseMove(object sender, MouseEventArgs e)
{
    Ellipse ellipse = sender as Ellipse;
    if (ellipse != null && e.LeftButton == MouseButtonState.Pressed)
    {
        DragDrop.DoDragDrop( ellipse,
                             ellipse.Fill.ToString(),
                             DragDropEffects.Copy);
    }
}
复制代码

 

注解

应用程序负责确定何时发生拖动,然后启动拖放操作。 通常,这是当 MouseDown 和 MouseMove 事件序列发生在要拖动的元素上时。 通过调用静态 DoDragDrop 方法并将传输的数据传递给它来启动拖放操作。 如有必要,DoDragDrop 方法将使 DataObject 中的数据自动换行。 为了更好地控制数据格式,可将 DataObject 中的数据换行,然后再将其传递至 DoDragDrop 方法。

从 DoDragDrop 方法返回的值是在放置目标的 事件处理程序中设置的属性Drop的值DragEventArgs.Effects。 如果返回值与调用 DoDragDrop中指定的值之一allowedEffects不匹配,则不会执行拖放操作。

posted @   echo-efun  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示