Я новичок в WPF. Я реализую Drag & Drop в 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, но я не знаю, где я могу его найти.
Есть идеи?