UWP - 有没有办法在退出 ListView 时更改鼠标光标而不在拖放期间触发事件?
Posted
技术标签:
【中文标题】UWP - 有没有办法在退出 ListView 时更改鼠标光标而不在拖放期间触发事件?【英文标题】:UWP - Is there any way to change the mouse cursor when exiting ListView without the event being triggered during drag and drop? 【发布时间】:2020-03-28 19:35:25 【问题描述】:我有一个可拖动的 ListView,它可以在 PointerEntered、PointerPressed 和 DragItemsStarting 事件上更改鼠标光标。问题是每次我执行拖放时,我总是触发 PointerExited ,它将光标重置回箭头。
如果不可能不触发PointerExited,在退出Listview 时,我还有什么其他方法可以将光标重置回箭头?
【问题讨论】:
【参考方案1】:PointerExited
事件触发时,我们可以判断事件本身。
PointerExited
确实是在拖动ListViewItem
时触发的,但PointerRoutedEventArgs.OriginalSource
与正常移动指针不同。这是我们判断的依据。
试试这个:
private void ListView_PointerExited(object sender, PointerRoutedEventArgs e)
if(e.OriginalSource is ListViewItemPresenter)
return;
Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.Arrow, 0);
拖动时,触发PointerExited
事件的源为ListViewItemPresenter
。通过这个判断,Cursor 就可以按预期工作了。
最好的问候。
【讨论】:
以上是关于UWP - 有没有办法在退出 ListView 时更改鼠标光标而不在拖放期间触发事件?的主要内容,如果未能解决你的问题,请参考以下文章
UWP IsNullOrEmptyStateTrigger 不适用于 ListView
如何使用类似表格的 DataTemplate 在 UWP ListView 中动态缩放列宽
如何在 Xamarin UWP 上的 ListView 中释放内存?