DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Inicializuje operaci přetažení.
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
Parametry
- dragSource
- DependencyObject
Odkaz na objekt závislosti, který je zdrojem přetahovaných dat.
- data
- Object
Datový objekt, který obsahuje přetahovaná data.
- allowedEffects
- DragDropEffects
Jedna z DragDropEffects hodnot, které určují povolené efekty operace přetažení myší.
Návraty
Jedna z DragDropEffects hodnot, která určuje konečný efekt, který byl proveden během operace přetažení.
- Atributy
Výjimky
dragSource nebo data je null.
Příklady
Následující příklad ukazuje, jak zahájit operaci přetažení z MouseMove obslužné rutiny Ellipse události elementu, aby byl zdrojem přetažení. Přenášená data jsou řetězcová reprezentace vlastnosti tří teček Fill . Data se předají DoDragDrop metodě jako řetězec a automaticky se zabalí do 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
Poznámky
Je zodpovědností vaší aplikace určit, kdy dojde k přetažení, a pak zahájit operaci přetažení. Obvykle se jedná o situace, kdy se MouseDown přes prvek, který se má přetáhnout, a MouseMove posloupnost událostí. Operaci přetažení zahájíte voláním statické DoDragDrop metody a předáním přenesených dat do ní. Metoda DoDragDrop v případě potřeby automaticky zabalí data.DataObject Pro větší kontrolu nad formátem dat můžete data DataObject před předáním DoDragDrop metodě zabalit.
Hodnota vrácená z DoDragDrop metody je hodnota DragEventArgs.Effects vlastnosti nastavená v obslužné rutině Drop události cíle drop. Pokud návratová hodnota neodpovídá jedné ze zadaných allowedEffects hodnot volání DoDragDrop, operace přetažení se neprovede.