dev*_*os1 5 c# wpf drag-and-drop
在我看来,没有办法检测拖动操作是否成功,但必须有一些方法.假设我想从源到目的地执行"移动".如果用户将鼠标放在某些不能接受掉落的应用程序或控件上,我该怎么说?
就此而言,我怎么知道拖动什么时候完成?
我看到了这个问题,但他的解决方案并没有为我工作,而且e.Action
是永远 Continue
.
我不确定这是否可以帮到你,但DoDragDrop方法返回最终的DragDropEffects值.
var ret = DoDragDrop( ... );
if(ret == DragDropEffects.None) //not successfull
else // etc.
Run Code Online (Sandbox Code Playgroud)
啊,我想我明白了。原来对 DoDragDrop 的调用实际上是同步的(多么蹩脚),并返回一个 值DragDropEffects
,None
如果操作失败,该值设置为。所以基本上这意味着只要用户处于拖动过程中,应用程序(或至少是 UI 线程)就会被冻结。这对我来说似乎不是一个非常优雅的解决方案。
好的 cz_dl 我看到你刚刚发布了那个东西,所以我会给你答案。
不过我不明白:目的地如何确定操作应该是移动还是副本?这不应该取决于源应用程序吗?