这是XAML代码,您可以在不同的GridView之间拖放GridView元素,但是,此方法仅适用于鼠标输入,仅适用于触摸输入。
通过触摸输入,元素仅在垂直拖动时从GridView“解锁”。在水平拖动时,UI会尝试滚动屏幕而不是仅移动GridView元素。
因此鼠标工作完美且触摸仅适用于初始垂直拖动,在初始垂直拖动之后,您可以像使用鼠标一样移动元素。这是一个Windows 8应用程序。
<Page.Resources>
<DataTemplate x:Key="ItemTemplate1">
<Border Background="#25BDC0">
<Grid Width="230" Height="230" Margin="10">
<TextBlock Text="{Binding Title}" Style="{StaticResource HeaderTextStyle}"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</Border>
</DataTemplate>
</Page.Resources>
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}" Width="Auto" Height="Auto">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<GridView Grid.Column="0" ItemTemplate="{StaticResource ItemTemplate1}"
ItemsSource="{Binding FirstCollection}"
AllowDrop="True" CanDragItems="True"
DragItemsStarting="GridViewDragItemsStarting"
Drop="GridViewDrop" Margin="10">
</GridView>
<GridView Grid.Column="1" ItemTemplate="{StaticResource ItemTemplate1}"
ItemsSource="{Binding SecondCollection}"
AllowDrop="True" CanDragItems="True"
DragItemsStarting="GridViewDragItemsStarting"
Drop="GridViewDrop" Margin="10">
</GridView>
</Grid>
答案 0 :(得分:1)
我偶然发现了同样的问题并在此找到了答案:
看起来使用GridView无法水平启动拖动,您必须垂直执行它,它与ListView完全相反。
因此,如果要水平拖动'n drop items,则必须使用ListView。 (根据MS指南http://msdn.microsoft.com/en-us/library/windows/apps/hh465299.aspx中的建议)
此致