【发布时间】:2017-12-30 12:30:02
【问题描述】:
当我在 DataTemplate 中为 ListView(UWP 应用程序)使用 Button 控件时,ListView 项的拖放操作不起作用。如果我使用 StackPanel、RelativePanel 或 Grid 等容器,而不是 Button 控件,则一切正常。我更喜欢 Button 控件作为容器,因为我喜欢它在 ListView 项上的鼠标悬停效果。我可以为 StackPanel 等做类似的事情,通过使用样式和行为编程的组合来自定义悬停效果,但试图避免这条路线(太复杂了)。
我可以对 Button 控件做一些事情,以便它可以让我悬停并在 ListView DataTemplate 的一部分时响应 Drag-and-Drop 事件吗?
我也很好奇是什么让 Button 抑制了 ListView 项的拖放。
【问题讨论】:
-
您应该考虑为自定义悬停效果重新设置列表视图项目的样式,而不是在此处使用按钮,这将吞噬您的所有手势,例如拖放。只需要确保测试虚拟化性能;或者,正如您已经知道的那样,在您的堆栈面板中进行自定义。
-
我必须重新考虑这个选项。我开始重新设置列表视图的样式,虽然它拥有我需要的一切,包括悬停,但对于我需要的东西,它不像使用按钮控件之类的自定义容器(在列表视图项数组中实现不同的配置)那样灵活。感谢您的意见。
标签: xaml listview drag-and-drop uwp winrt-xaml