2011-06-22 26 views
3

我是WPF中的新成員。我正在實現Drag & Drop在TreeView中,而我的DragOver事件處理程序不起作用。在WPF設置e.Effects在DragOver不起作用 - 爲什麼?

<Style TargetType="TreeViewItem"> 
    <!-- ... --> 
    <EventSetter Event="DragOver" Handler="item_DragOver" /> 
</Style> 
void item_DragOver(object sender, DragEventArgs e) 
{ 
    if (!e.Data.GetDataPresent("someFormat") || e.Source == sender) 
     e.Effects = DragDropEffects.None;     
    else if (e.KeyStates == DragDropKeyStates.ControlKey) 
     e.Effects = DragDropEffects.Copy; 
    else 
     e.Effects = DragDropEffects.Move; 

    e.Handled = true; 
} 

當程序在拖曳時對一些樹項目它總是顯示「移動」拖動圖標,即使我按下Ctrl鍵運行。我想一些默認的事件處理程序會覆蓋我的e.Effects,但我不知道我可以在哪裏搜索它。

任何想法?

回答

1

我發現它,以檢查是否Ctrl鍵按下正確的方法是:

if ((e.KeyStates & DragDropKeyStates.ControlKey) == DragDropKeyStates.ControlKey) 
相關問題