2011-02-02 19 views
7

私は基本的にWYSIWYGエディタであり、ドラッグアンドドロップ機能を使用しているWPFアプリケーションで作業しています。私はドラッグ&ドロップ機能を持っていますが、より直感的で使いやすいものにする必要があります。これの一部には、実際にドラッグされているアイテムが表示されます。これを行う最も簡単な方法は何ですか?私がドラッグしているアイテムは本当に特別なものではありませんが、これを行う方法をどこで探すべきかはわかりません。WPFでドラッグされているアイテムを表示するにはどうすればいいですか?

答えて

8

特に、DragDrop.GiveFeedbackを使用する必要があります。 Jaimeには、あなたが説明するものが含まれている様々なシナリオの概要が記載されている素晴らしいblog postがあります。

カーソル操作に対処するハイメのブログ記事から簡単な例...

 private void StartDragCustomCursor(MouseEventArgs e) 
     { 

      GiveFeedbackEventHandler handler = new GiveFeedbackEventHandler(DragSource_GiveFeedback); 
      this.DragSource.GiveFeedback += handler; 
      IsDragging = true; 
      DataObject data = new DataObject(System.Windows.DataFormats.Text.ToString(), "abcd"); 
      DragDropEffects de = DragDrop.DoDragDrop(this.DragSource, data, DragDropEffects.Move); 
      this.DragSource.GiveFeedback -= handler; 
      IsDragging = false; 
     } 

     void DragSource_GiveFeedback(object sender, GiveFeedbackEventArgs e) 
     { 
       try 
       { 
        //This loads the cursor from a stream .. 
        if (_allOpsCursor == null) 
        { 
         using (Stream cursorStream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(
      "SimplestDragDrop.DDIcon.cur")) 
         { 
          _allOpsCursor = new Cursor(cursorStream); 
         } 
        } 
        Mouse.SetCursor(_allOpsCursor); 

        e.UseDefaultCursors = false; 
        e.Handled = true; 
       } 
       finally { } 
     } 
関連する問題