DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) Method


ドラッグ アンド ドロップ操作を開始します。Initiates a drag-and-drop operation.

 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);
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


DependencyObject DependencyObject DependencyObject DependencyObject

ドラッグするデータのソースである依存関係オブジェクトへの参照。A reference to the dependency object that is the source of the data being dragged.

Object Object Object Object

ドラッグするデータを格納するデータ オブジェクト。A data object that contains the data being dragged.

DragDropEffects DragDropEffects DragDropEffects DragDropEffects

ドラッグ アンド ドロップ操作の許容される効果を指定する DragDropEffects 値の 1 つ。One of the DragDropEffects values that specifies permitted effects of the drag-and-drop operation.


ドラッグ アンド ドロップ操作中に実行された最終的な効果を指定する DragDropEffects 値の 1 つ。One of the DragDropEffects values that specifies the final effect that was performed during the drag-and-drop operation.


dragSource または datanull です。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. データは文字列として @no__t 0 のメソッドに渡され、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,
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 および @no__t 1 つのイベントシーケンスが発生したときに発生します。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. データ形式の制御を拡大するには、データを DoDragDrop メソッドに渡す前に DataObject にラップします。For greater control over the data format, you can wrap the data in a DataObject before passing it to the DoDragDrop method.

@No__t-0 メソッドから返される値は、ドロップ先の Drop イベントハンドラーで設定された DragEventArgs.Effects プロパティの値です。The value returned from the DoDragDrop method is the value of the DragEventArgs.Effects property set in the drop target's Drop event handler. 戻り値が、DoDragDrop の呼び出しで指定された @no__t 0 のいずれとも一致しない場合、ドラッグアンドドロップ操作は実行されません。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.