我使用 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),我只允许丢弃。这行得通,不再可能将项目从另一个 LibraryBar 拖放到此 LibraryBar 中。但是,如果将项目拖动到 LibraryBar 上,播放的动画仍然会播放。我怎样才能为特定类型禁用此动画?