2010-05-21 6 views
16

나는이 주제에 대한 많은 답변을 알고 있지만, 나는 여전히 전혀 작동하지 못한다. 나는 응용 프로그램의 모든 레벨에서 모든 컨트롤에서 AllowDrop을 사용할 수있게 만들었으며 모든 컨트롤에서 DragEnter 및 Drop을 잡으려고했습니다. 응용 프로그램 내에서 항목을 끌어서 놓을 수는 있지만 Windows 탐색기 나 바탕 화면 등에서 뭔가를 가져 오려고 할 때마다 No 아이콘이 표시됩니다. 내가 뭘 잘못했을지 모르겠다.Windows 탐색기에서 C# WPF 응용 프로그램으로 끌어서 놓기를 허용하려면 어떻게합니까?

다음은 내가하는 일의 예입니다. 여전히 이동 커서를 표시하지 않고 MainWindow_DragEnter 함수를 누르지 않습니다.

namespace WpfApplication1 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
      this.AllowDrop = true; 
      this.DragEnter += new DragEventHandler(MainWindow_DragEnter); 
     } 

     void MainWindow_DragEnter(object sender, DragEventArgs e) 
     { 
      e.Effects = DragDropEffects.Move; 
     } 
    } 
} 

답변

13

AllowDrop은 끌기 사용 가능성을 활성화 만합니다. & drop. 직접 처리해야합니다.

본대로 알 수 있듯이 AllowDrop을 사용하는 개체에는 DragEnter, DragOver, DragLeave 이벤트가 있습니다. 이 순간에 원하는 것을 코드화해야합니다. 커서를 변경하고, 떨어 뜨린 항목을 수락 할 수 있습니다. 하지만 직접 처리해야합니다. 예 : DragEventArgs.Effects를 찾으십시오.

방금 ​​새 WPF 응용 프로그램, 선택한 창을 열고 AllowDrop을 활성화하고 이벤트 처리기 DragEnter를 추가하여 거기에 넣습니다. e.Effects = DragDropEffects.Move; 나를 위해 잘 작동합니다.

+0

나는 이것을 시도했고 같은 결과를 얻었다. MainMindow_DragEnter 함수에 중단 점을 넣었지만 탐색기 창에서 무언가를 끌면 절대로 충돌하지 않습니다. 커서는 여전히 "아니오"기호입니다. –

+4

Visual Studio에서 관리자 모드가 아닌 경우 솔루션을 사용해도 문제가 해결되지 않았을 것입니다. –

+0

감사합니다. Seabass__이 "Admin"문제에 절망했습니다! – germanSharper

29

나는 내 생각을 해결했습니다. Visual Studio를 관리자로 실행하고있었습니다. Explorer가 사용자 모드에서 실행 중이기 때문에 응용 프로그램을 시작할 때 탐색기에서 끌기를 인식하지 못했습니다. 이 뼈대 이동이 다른 누군가를 돕기를 바랍니다.

+0

이것은 내 문제는 아니지만 [TextBox, RichTextBox 및 FlowDocument] (http://stackoverflow.com/a/336283/116047)에서 모두 [약간 조정] (http : //social.msdn microsoft.com/forums/ko-kr/wpf/thread/a539c487-1dec-4935-b91b-c3ec252eb834)를 사용하여 끌어서 놓기를 사용할 수 있습니다. – Pakman

+0

Window 7에서 관리자로 VS를 실행하고 "No"기호를 얻었습니다. 물론 관리자로서 응용 프로그램을 독립적으로 실행하기 위해 동일하게 진행됩니다. 이제 권한 상승 된 응용 프로그램에 대해 드래그 앤 드롭 작업을 수행하는 방법을 알아내는 중 ... http://stackoverflow.com/questions/2833709/c-sharp-drag-drop-does-not-work-on-windows-7 – Llyle

관련 문제