LibraryBar を使用して、関係を持ついくつかの項目を表示します。アイテム間の関係が異なるため、複数のコンテナを持っています。LibraryBar に対して AllowDrop が true に設定されている場合のデフォルト設定として、すべての要素を LibraryBar にドラッグすることが可能であり、アイテムはドロップされたコレクションに追加されます。
今、私はそれを望んでいません。ある LibraryBar から別の LibraryBar にアイテムをドラッグできるようにしたくありません。ただし、いくつかの TagVisualizations を LibraryBar にドラッグしたいので、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
}
}
ご覧のとおり、カーソルのデータが画像の場合にのみドロップを許可します (したがって、TagVisualization になりました)。これは機能し、別の LibraryBar からこの LibraryBar にアイテムをドロップすることはできなくなりました。ただし、項目が LibraryBar にドラッグされた場合に再生されるアニメーションは引き続き再生されます。特定のタイプでこのアニメーションを無効にするにはどうすればよいですか?