下面是XAML代码,您可以在不同的GridViews之间拖放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>发布于 2013-06-27 16:12:06
我偶然发现了同样的问题,并在这里找到了答案:
http://social.msdn.microsoft.com/Forums/windowsapps/en-US/7fcf8bb8-16e5-4be8-afd3-a21e565657d8/drag-and-drop-gridview-items-and-disabled-scrollbar
看起来,使用GridView不能水平拖动,必须垂直拖动,而使用ListView则正好相反。
因此,如果您想水平拖放项目,则必须使用ListView。(如MS guidelines http://msdn.microsoft.com/en-us/library/windows/apps/hh465299.aspx中所建议的)
问候
https://stackoverflow.com/questions/16483739
复制相似问题