使用Toolkit Gestures拖动在Landscape Orientation上疯狂

时间:2014-05-02 21:14:50

标签: xaml layout windows-phone-8 drag-and-drop itemscontrol

在WP8应用程序中,我有一个ListBox绑定到一个带有Grid的ItemsSource,因为它是ItemsPanelTemplate。根据用户选择,网格的布局可能每次都不同(不同的行数/列数),并且我使用辅助类来将ItemsPanelTemplate网格的行和列定义绑定到从数据库读取的值。

用户可以将项目添加到应用程序,并将每个项目分配给ListBox中的网格单元格。每个项目都可以“坐”在多个网格中(多对多关系),这使我使用另一个绑定帮助器类来设置Grid.RowGrid.Column附加属性的绑定。 ListBox.ItemContainerStyle,绑定到ItemsSource类的属性。

另一个要求是在Rows.Count >= Columns.Count时将应用程序设置为纵向,而在列更多时使用横向。

我也在使用Toolkit Gestures进行拖放操作。

问题是横向方向的拖拽问题。虽然在Portrait上一切都很好,但在横向方向上,ListBox变得疯狂。拖动发生在不同的单元格中,那些实际被拖动的单元格中的一些甚至不会引发手势事件(DragStarted,DragDelta,DragCompleted)。

我迷失在这里,不知道问题可能是什么,或者如何解决这个问题。

请你的灯。

Here is a sample that illustrates the problem.

修改

Phew,这是工具包上GestureListener的错误。它不尊重横向方向,并将UIElements视为在Portrait中呈现。

使用操作事件代替,它可以正常工作。我能拿回50分吗? :P

1 个答案:

答案 0 :(得分:2)

如果它不是手势监听器而是操纵事件,那么你会看到有几个好问题:

Drag and drop from list to canvas on windows phone with MVVM

Moving Object in ScrollViewer