使用 Red-Gate 工具,我们检测到 System.Windows.DataObject 持有对拖拽对象(框架元素)的引用,该拖拽对象长期在完成的操作中徘徊。
DragDrop.DoDragDrop 一次后如何“清除”拖动对象?有没有办法通过这个传递一个空值并让它直接通过?
我自己刚刚发现了这个 gem,我的解决方案是对被拖动的数据项使用 WeakReference。
DataObject data = new DataObject(new WeakReference(this.draggedData));
DragDrop.DoDragDrop((DependencyObject)sender, data, DragDropEffects.Move);
然后在下降中
var draggedItem = e.Data.GetData(this.format.Name) as WeakReference;
if (draggedItem != null && draggedItem.IsAlive)
{
....
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)