编程语言
首页 > 编程语言> > c#-WinRT中是否存在拖放事件?

c#-WinRT中是否存在拖放事件?

作者:互联网

我正在寻找Metro中的“已拖放”事件,这意味着如果用户将某个项目拖放到可放置区域之外.

我怎样才能做到这一点或有什么解决方法?

解决方法:

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

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

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

Window.Current.CoreWindow.PointerReleased+=CoreWindow_PointerReleased;

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

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

您可以设置的指标如下:

    private void Entries_DragStarting(object sender, DragItemsStartingEventArgs e){            
        m_isDragging = true;
        // ...
    }

标签:drag-and-drop,windows-runtime,c
来源: https://codeday.me/bug/20191101/1980606.html