首页 文章

按钮控件作为ListView DataTemplate容器wrt拖放ListView元素

提问于
浏览
1

当我在DataTemplate for ListView(UWP app)中使用Button控件时,ListView项的拖放不起作用 . 如果我使用StackPanel,RelativePanel或Grid等容器而不是Button控件,一切正常 . 我更喜欢将Button控件作为容器,因为我喜欢它对ListView项目的鼠标悬停效果 . 我可以为StackPanel等做类似的事情,通过使用样式和行为编程的组合来自定义悬停效果但是试图避免这种路径(过于复杂) .

我可以对Button控件执行某些操作,以便它为我提供悬停,并在ListView DataTemplate的一部分时响应Drag-and-Drop事件吗?

我也很好奇是什么让Button抑制了ListView项目的拖放 .

1 回答

  • 0

    Button正在捕获指针,这会导致指针单击事件不会冒泡到ListViewItem,这会导致Drag&Drop启动 .

    您可以查看 ReleasePointerCapture 方法,该方法将释放指针捕获,允许其他项捕获它 .

    您将需要创建一个新类,该类扩展默认的Button类并覆盖例如 OnPointerPressed 方法,以选择拖放和单击按钮之间的逻辑 .

相关问题