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

注釈

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

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

適用対象