2012-12-13 31 views
1

enter image description hereSilverlight DragDropTarget:用其他元素替換「拖影」?

當使用Silverlight工具包的DragDropTarget時,被拖動項目的快照顯示在光標下。

是否可以替換這個快照/拖拽或者禁用它?

背景: 我在控件之間拖動項目,即從一個列表框到一個畫布,當我放下我的列表框項目時,我在畫布上創建了具有不同尺寸的不同項目。我想顯示將要創建的項目,或者至少顯示其區域,而不是列表框中的文本。

This related question沒有幫助我。

謝謝!

編輯:This related question建議更改源代碼以更改小「插入指示符」圖標。

回答

1

我在我的應用程序中使用datagrids中的dragdroptarget時遇到了同樣的問題,我找到了一個解決方案,但這並沒有導致所需的方式。那麼由於這個解決方案,我能夠找到另一種完全按照我想要的方式工作的方式。

我用DragStarting事件取消基於來自的MouseLeftButtonUp的MouseLeftButtonDown活動收到我輸入的阻力。

在DragStarting事件:

public void dg1stUnAllocDragStarting (object sender, ItemDragEventArgs e) 
    { 
     if (blnMouseLeftButtonUp) 
     { 
      e.Cancel = true; 
      e.Handled = true; 
     } 

     blnMouseLeftButtonUp = false; 
    } 

的MouseLeftButtonUp事件:

public void dataGrid1stUnAllocChild_MouseLeftButtonUp (object sender, MouseButtonEventArgs e) 
    {   
     blnMouseLeftButtonUp = true; 
    } 

MouseLeftButtonDown事件:

public void dataGrid1stUnAllocChild_MouseLeftButtonDown (object sender, MouseButtonEventArgs e) 
    {   
     blnMouseLeftButtonUp = false; 
     e.Handled = false;   
    } 

希望它會幫助你。