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 объекта удаления. Если возвращаемое значение не соответствует одному из указанных allowedEffects
в вызове DoDragDrop, операция перетаскивания не выполняется.