Я использую LibraryBar для отображения некоторых элементов, которые имеют отношение. Поскольку между элементами существуют разные отношения, у меня есть несколько контейнеров. В качестве настройки по умолчанию, если для параметра LibraryBar установлено значение AllowDrop, равное true, можно перетаскивать все элементы в LibraryBar, и элементы добавляются в коллекцию, где они удаляются.
Теперь я не хочу этого. Я не хочу, чтобы можно было перетащить элемент из одного LibraryBar в другой. Однако я не могу просто установить AllowDrop в false, потому что я хочу перетащить некоторые TagVisualizations в LibraryBar.
Итак, я определил в своем методе, который обрабатывает DropEvents:
public void OnTargetDrop(object sender, SurfaceDragDropEventArgs e)
{
//only if TagVisualization
if (e.Cursor.Data is Image)
{
((sender as LibraryBar).Tag as ISourceFile).unexpand();
e.Handled = true;
}
else
{
//TODO: cancel Drag&Drop
}
}
Как вы можете видеть, я разрешаю удаление только в том случае, если данные курсора являются изображением (и, следовательно, я теперь TagVisualization). Это работает, больше невозможно поместить элемент из другой библиотеки библиотек в эту библиотеку. Однако анимация, которая воспроизводится, если элемент перетаскивается через библиотечную панель, все еще воспроизводится. Как я могу также отключить эту анимацию для определенных типов?