我使用库栏来显示一些有关系的项目。因为项目之间有不同的关系,所以我有多个容器。作为库栏的默认设置,如果将AllowDrop设置为true,则可以将所有元素拖到库栏中,并将项目添加到要删除的集合中。
现在我不想要了。我不想把一个项目从一个库栏拖到另一个库栏。但是我不能将AllowDrop设置为false,因为我想将一些标记可视化拖到库栏中。
所以我在处理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
}
}
如您所见,只有当光标的数据是一个图像时,我才允许删除(因此我现在是一个标记可视化)。这样,就不可能再将项目从另一个库栏拖放到此库栏中。但是,如果项目拖到库栏上,则播放的动画仍将播放。如何对特定类型禁用此动画?