DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) 方法

定义

启动拖放操作。

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 值中的一个,指定在拖放操作期间执行的最终效果。

属性

例外

dragSourcedatanull

示例

下面的示例显示了如何从 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

注解

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

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

适用于