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 値の 1 つ。

返品

ドラッグ アンド ドロップ操作中に実行された最終的な効果を指定する DragDropEffects 値の 1 つ。

属性

例外

dragSource または datanull

次の例では、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

注釈

ドラッグがいつ行われるかを判断し、ドラッグ アンド ドロップ操作を開始するのはアプリケーションの役割です。 通常、これは、ドラッグする要素に対してイベントの MouseDownMouseMove シーケンスが発生する場合です。 ドラッグ アンド ドロップ操作を開始するには、静的 DoDragDrop メソッドを呼び出し、転送されたデータをそのメソッドに渡します。 DoDragDropメソッドは、必要に応じてデータをDataObjectに自動的にラップします。 データ形式をより詳細に制御するには、DataObject メソッドに渡す前に、データをDoDragDropでラップします。

DoDragDrop メソッドから返される値は、ドロップ ターゲットのDragEventArgs.Effects イベント ハンドラーで設定されたDrop プロパティの値です。 戻り値が、allowedEffectsの呼び出しで指定されたDoDragDropのいずれかに一致しない場合、ドラッグ アンド ドロップ操作は実行されません。

適用対象