DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) Метод

Определение

Инициирует операцию перетаскивания.Initiates a drag-and-drop operation.

public:
 static System::Windows::DragDropEffects DoDragDrop(System::Windows::DependencyObject ^ dragSource, System::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]
public static System.Windows.DragDropEffects DoDragDrop (System.Windows.DependencyObject dragSource, object data, System.Windows.DragDropEffects allowedEffects);
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

Ссылка на объект зависимости, являющийся источником перетаскиваемых данных.A reference to the dependency object that is the source of the data being dragged.

data
Object

Объект данных, содержащий перетаскиваемые данные.A data object that contains the data being dragged.

allowedEffects
DragDropEffects

Одно из значений DragDropEffects, которое указывает разрешенные эффекты операции перетаскивания.One of the DragDropEffects values that specifies permitted effects of the drag-and-drop operation.

Возвращаемое значение

Одно из значений DragDropEffects, которое указывает конечный результат выполнения операции перетаскивания.One of the DragDropEffects values that specifies the final effect that was performed during the drag-and-drop operation.

Атрибуты

Исключения

Параметр dragSource или data имеет значение null.dragSource or data is null.

Примеры

В следующем примере показано, как инициировать операцию перетаскивания в обработчике событий MouseMove элемента Ellipse, чтобы сделать его источником перетаскивания.The following example shows how to initiate a drag-and-drop operation from the MouseMove event handler of an Ellipse element to make it a drag source. Передаваемые данные представляют собой строковое представление свойства Fill эллипса.The transferred data is the string representation of the ellipse's Fill property. Данные передаются в метод DoDragDrop в виде строки и автоматически упаковываются в DataObject.The data is passed to the DoDragDrop method as a string and is automatically wrapped in a 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

Комментарии

Приложение может определить, когда происходит перетаскивание, а затем инициировать операцию перетаскивания.It is the responsibility of your application to determine when a drag occurs, and then initiate the drag-and-drop operation. Как правило, это происходит, когда для перетаскивания элемента возникает @no__t последовательность событий от 0 до MouseMove.Typically, this is when a MouseDown and MouseMove sequence of events occurs over the element to be dragged. Вы инициируете операцию перетаскивания путем вызова статического метода DoDragDrop и передачи ему передаваемых данных.You initiate the drag-and-drop operation by calling the static DoDragDrop method and passing the transferred data to it. Метод DoDragDrop будет автоматически включать данные в DataObject при необходимости.The DoDragDrop method will automatically wrap the data in a DataObject if necessary. Для большего контроля над форматом данных можно включать данные в DataObject перед их передачей в метод DoDragDrop.For greater control over the data format, you can wrap the data in a DataObject before passing it to the DoDragDrop method.

Значение, возвращаемое методом DoDragDrop, является значением свойства DragEventArgs.Effects, установленного в обработчике событий Drop целевого объекта перетаскивания.The value returned from the DoDragDrop method is the value of the DragEventArgs.Effects property set in the drop target's Drop event handler. Если возвращаемое значение не соответствует одному из allowedEffects, указанному в вызове DoDragDrop, операция перетаскивания не выполняется.If the return value does not match one of the allowedEffects specified in the call to DoDragDrop, the drag-and-drop operation is not performed.

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