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

ドラッグ アンド ドロップ操作中に実行された最終的な効果を指定する 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 にデータを自動的にラップします。 データ形式の制御を拡大するには、データを DoDragDrop メソッドに渡す前に DataObject にラップします。

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

適用対象