Поделиться через


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 значений, указывающее окончательный эффект, который был выполнен во время операции перетаскивания.

Атрибуты

Исключения

dragSource или data есть null.

Примеры

В следующем примере показано, как инициировать операцию перетаскивания из MouseMove обработчика Ellipse событий элемента, чтобы сделать его источником перетаскивания. Передаваемые данные — это строковое представление свойства многоточия 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 , — это значение DragEventArgs.Effects свойства, заданного в обработчике событий целевого объекта Drop drop. Если возвращаемое значение не соответствует одному из указанных allowedEffects в вызове DoDragDrop, операция перетаскивания не выполняется.

Применяется к