在WPF设置e.DragOver中的效果没有';不起作用——为什么

本文关键字:不起作用 为什么 设置 WPF DragOver | 更新日期: 2023-09-27 17:59:48

我是WPF的新手。我正在实施Drag&放入TreeView,我的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,但我不知道在哪里可以搜索它

有什么想法吗?

在WPF设置e.DragOver中的效果没有';不起作用——为什么

我找到了它,检查ctrl键是否按下正确的方式是:

if ((e.KeyStates & DragDropKeyStates.ControlKey) == DragDropKeyStates.ControlKey)