我想在双击列表框中的项目时创建视觉效果。到目前为止,我有拖放功能,其中项目在视觉上附加到鼠标上并且可以移动到放置目标。通过该功能,我可以使用获取项目容器的相同逻辑为项目设置动画,但是我无法离开项目控制。有没有办法从 ListBox 中删除项目并将其视觉动画到另一个位置?基本上主列表框是一手牌。当一张卡片被双击时,我希望它在视觉上从手牌列表框移动到丢弃列表框。到目前为止,将项目从一个集合移动到另一个集合的逻辑没有问题,但是我真的想要这个事件的动画视觉表示。任何关于如何做这样的事情的想法或参考将不胜感激。
谢谢,布兰登
关于我尝试过的更多细节:有些概念我还没有很好地掌握,这导致我首先面对这堵墙。我有一个方法,我将 ListBox 作为 ItemsControl、作为列表框项的 FrameworkElement 以及与 ListBox 项关联的数据对象传入(有些可能是不必要的)。我试图做的是作为画布的 ListBoxItem 的 FindVisualChild。我能做到。在我看来,我想以某种方式将画布克隆为画布或位图,将其添加到同一位置的页面子级的子级中,从 ListBox 中删除 ListBoxItem,并将克隆动画到丢弃桩。当动画完成时,克隆将被移除或隐藏,并且随着该对象被添加到丢弃堆集合中,它将有效地替换克隆。
我的问题是,我觉得确实有一种更简单的方法可以使用装饰层或其他东西来做到这一点。我也不知道如何将克隆定位在元素中的完全相同的位置,在视觉树的更上方。我将继续努力并研究其他方法,我只希望有人能分享一些对此的见解。