WinRT 中是否存在拖放取消事件?

Lar*_*wel 3 c# drag-and-drop windows-runtime

我正在寻找 Metro 中的拖/放取消事件,这意味着如果用户拖动一个项目并将其放到可放置区域之外。

我怎样才能实现这个目标或者有什么解决方法?

HCL*_*HCL 5

我还没有找到这样的事件(对于c#/XAML)!也许(希望)最终版本中会存在一个事件!

作为临时解决方法,我已注册该Window.Current.CoreWindow.PointerReleased活动。
然后,在拖动开始时,我将布尔指示器设置为 true,如果拖动结束,PointerReleased将触发 - 事件,我可以测试布尔指示器。

解决方法
在 Page(或任何元素)的构造函数中注册到 PointerReleased:

Window.Current.CoreWindow.PointerReleased+=CoreWindow_PointerReleased;
Run Code Online (Sandbox Code Playgroud)

事件处理程序可能看起来像这样:

void CoreWindow_PointerReleased(CoreWindow sender, PointerEventArgs args) {
     if (m_isDragging) {
           m_isDragging = false;
           // Here you know that a drag-operation came to a end
     }
}
Run Code Online (Sandbox Code Playgroud)

您可以设置的指标例如如下;

    private void Entries_DragStarting(object sender, DragItemsStartingEventArgs e){            
        m_isDragging = true;
        // ...
    }
Run Code Online (Sandbox Code Playgroud)