DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) 메서드

정의

끌어서 놓기 작업을 시작합니다.Initiates a drag-and-drop operation.

public:
 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);
[System.Security.SecurityCritical]
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

매개 변수

dragSource
DependencyObject

끌어서 놓을 데이터의 소스인 종속성 개체에 대한 참조입니다.A reference to the dependency object that is the source of the data being dragged.

data
Object

끌어서 놓을 데이터가 들어 있는 데이터 개체입니다.A data object that contains the data being dragged.

allowedEffects
DragDropEffects

끌어서 놓기 작업에 허용되는 효과를 지정하는 DragDropEffects 값 중 하나입니다.One of the DragDropEffects values that specifies permitted effects of the drag-and-drop operation.

반환

끌어서 놓기 작업 동안 수행된 마지막 효과를 지정하는 DragDropEffects 값 중 하나입니다.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.

예제

다음 예제에서는 Ellipse 요소의 MouseMove 이벤트 처리기에서 끌어서 놓기 작업을 시작하여 끌기 소스로 만드는 방법을 보여 줍니다.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. 데이터에 전달 되는 DoDragDrop 문자열로 메서드 및 자동으로 래핑됩니다를 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,
                             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

설명

끌기가 발생 하는 시점을 확인 한 다음 끌어서 놓기 작업을 시작 하려면 애플리케이션의 담당 합니다.It is the responsibility of your application to determine when a drag occurs, and then initiate the drag-and-drop operation. 일반적으로이 경우는 MouseDownMouseMove 끌 수 요소 위에 이벤트 시퀀스가 발생 합니다.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.

반환 되는 값을 DoDragDrop 메서드는 값을 DragEventArgs.Effects 놓기 대상의 속성 집합 Drop 이벤트 처리기입니다.The value returned from the DoDragDrop method is the value of the DragEventArgs.Effects property set in the drop target's Drop event handler. 반환 값 중 하나를 일치 하지 않는 경우는 allowedEffects 에 대 한 호출에 지정 된 DoDragDrop, 끌어서 놓기 작업이 수행 되지 않습니다.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.

적용 대상