参数
- dragSource
- DependencyObject
对依赖项对象的引用(该对象是被拖动数据的源)。
- data
- Object
包含被拖动数据的数据对象。
- allowedEffects
- DragDropEffects
DragDropEffects 值中的一个,指定拖放操作的允许效果。
返回
DragDropEffectsDragDropEffects 值中的一个,指定在拖放操作期间执行的最终效果。
例外
ArgumentNullExceptiondragSource
或 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
不匹配,则不会执行拖放操作。