DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
启动拖放操作。
public:
static System::Windows::DragDropEffects DoDragDrop(System::Windows::DependencyObject ^ dragSource, System::Object ^ data, System::Windows::DragDropEffects allowedEffects);
[System.Security.SecurityCritical]
public static System.Windows.DragDropEffects DoDragDrop (System.Windows.DependencyObject dragSource, object data, System.Windows.DragDropEffects allowedEffects);
public static System.Windows.DragDropEffects DoDragDrop (System.Windows.DependencyObject dragSource, object data, System.Windows.DragDropEffects allowedEffects);
[<System.Security.SecurityCritical>]
static member DoDragDrop : System.Windows.DependencyObject * obj * System.Windows.DragDropEffects -> System.Windows.DragDropEffects
static member DoDragDrop : System.Windows.DependencyObject * obj * System.Windows.DragDropEffects -> System.Windows.DragDropEffects
Public Shared Function DoDragDrop (dragSource As DependencyObject, data As Object, allowedEffects As DragDropEffects) As 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);
}
}
Private Sub Ellipse_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseEventArgs)
Dim ellipse = TryCast(sender, Ellipse)
If ellipse IsNot Nothing AndAlso e.LeftButton = MouseButtonState.Pressed Then
DragDrop.DoDragDrop(ellipse, ellipse.Fill.ToString(), DragDropEffects.Copy)
End If
End Sub
注解
应用程序负责确定何时发生拖动,然后启动拖放操作。 通常,这是当 MouseDown 和 MouseMove 事件序列发生在要拖动的元素上时。 通过调用静态 DoDragDrop 方法并将传输的数据传递给它来启动拖放操作。 如有必要,DoDragDrop 方法将使 DataObject 中的数据自动换行。 为了更好地控制数据格式,可将 DataObject 中的数据换行,然后再将其传递至 DoDragDrop 方法。
从 DoDragDrop 方法返回的值是在放置目标的 事件处理程序中设置的属性Drop的值DragEventArgs.Effects。 如果返回值与调用 DoDragDrop中指定的值之一allowedEffects
不匹配,则不会执行拖放操作。