2011-02-02 21 views
7

Aslında bir WYSIWYG editörü olan bir WPF Uygulaması üzerinde çalışıyorum ve sürükle ve bırak işlevselliğini kullanıyor. Sürükle ve bırak işlevselliği çalışıyorum, ancak daha sezgisel ve kullanıcı dostu hale getirmem gerekiyor. Bunun bir kısmı aslında sürüklenen öğeyi göstermeyi içerir. Bunu yapmanın en kolay yolu nedir? Sürüklediğim öğeler gerçekten özel bir şey değil, ama bunun nasıl yapılacağına bile bakmayacağım bile.WPF'de sürüklenen öğeyi nasıl gösteririm?

cevap

8

Diğer şeylerin yanı sıra DragDrop.GiveFeedback'dan faydalanmanız gerekir; Jaime, tanımladığınızın dahil edildiği farklı senaryoları özetleyen mükemmel bir blog post'a sahiptir.

imleç manipülasyon ile ilişkilerde Jaime'nın blog yazısı Önemsiz örnek ...

 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 { } 
     } 
İlgili konular