我正在WPF中编写一个基于ListBox的用户控件.其中一个主要功能是通过拖动项目来重新排序列表.当用户拖动项目时,我将项目更改Opacity为50%,并ObservableCollection根据用户想要的位置在我的ViewModel中物理移动项目.在掉落事件中,我将Opacity回到100%.
我遇到的问题是,如果用户将项目拖离我的控件并将其丢弃到其他地方,那么我需要将其更改Opacity为100%并将项目移回用户开始拖动时的位置.是否有我可以处理的事件来捕获此操作?如果没有,有没有其他狡猾的方法来解决这个问题?
ito*_*son 15
假设您使用的是内置拖放功能,则可以使用DoDragDrop方法的返回值.如果放置目标不接受拖动的对象,则DoDragDrop将返回DragDropEffects.None.
这当然假设表单上的其他控件不允许删除列表项.