如何在 Windows Universal Apps on Windows 10 Phone 中设置触摸拖动?
How do I set up dragging by touch in Windows Universal Apps on Windows 10 Phone?
我已经成功地设置了我的网格,可以使用鼠标拖动
<Grid x:Name="SourceGrid13"
CanDrag="True"
DragStarting="SourceGrid_DragStarting"
Margin="0,20,0,0">
但是,在 Windows Phone (Windows 10) 上无法通过触摸拖动。我该如何设置?
我还假设一旦我拖动了 Grid,拖放顺序将与鼠标相同?这是我的掉落代码:
<ListView HorizontalAlignment="Center" AllowDrop="True"
Drop="Image_Drop"
DragEnter="TargetImage_DragEnter"
DragLeave="TargetImage_DragLeave"
CanDragItems="True"
IsSwipeEnabled="True"
MinHeight="124"
Grid.Row="4"
Grid.Column="1">
<Image Height="224"/>
</ListView>
同样在平板上,很难做到,但会通过触摸拖动。我需要在 phone 某处启用它吗?
我现在认为在 Windows 10 Windows Phone.
的未来更新或实际发布之前,触摸拖动可能会被禁用
更新基于答案:
我将 listView 的 CanDragItems 和 IsSwipeEnabled 设置为 True,但这并没有改变任何东西。我应用了一些奇怪的结果的操作矩形。在 Phone 上,我可以拖动矩形,但是当我将它放入我的 ListView 时,它会消失。这些图片显示:
完整矩形:
将其拖出 Framework 元素 - 它被拖到 listView 后面。
在Desktop上,矩形拖到listView前面,拖出原来的Framework Element后,就不可拖了。
所有触摸屏操作所需的东西都在盒子里。有一个简单的例子 - Rectangle
on the Canvas
:
<Canvas Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Rectangle Width="50" Height="50" Fill="Blue" RenderTransformOrigin="0.5,0.5"
ManipulationDelta="Rectangle_ManipulationDelta" ManipulationMode="All">
<Rectangle.RenderTransform>
<TranslateTransform x:Name="dragTranslation" />
</Rectangle.RenderTransform>
</Rectangle>
</Canvas>
最小的处理代码是:
private void Rectangle_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e) {
dragTranslation.X += e.Delta.Translation.X;
dragTranslation.Y += e.Delta.Translation.Y;
}
足以在触摸屏和桌面上使用鼠标将任何 UIElement
拖动到 Canvas
上。拖动 Grid
也有效。
我已经成功地设置了我的网格,可以使用鼠标拖动
<Grid x:Name="SourceGrid13"
CanDrag="True"
DragStarting="SourceGrid_DragStarting"
Margin="0,20,0,0">
但是,在 Windows Phone (Windows 10) 上无法通过触摸拖动。我该如何设置?
我还假设一旦我拖动了 Grid,拖放顺序将与鼠标相同?这是我的掉落代码:
<ListView HorizontalAlignment="Center" AllowDrop="True"
Drop="Image_Drop"
DragEnter="TargetImage_DragEnter"
DragLeave="TargetImage_DragLeave"
CanDragItems="True"
IsSwipeEnabled="True"
MinHeight="124"
Grid.Row="4"
Grid.Column="1">
<Image Height="224"/>
</ListView>
同样在平板上,很难做到,但会通过触摸拖动。我需要在 phone 某处启用它吗?
我现在认为在 Windows 10 Windows Phone.
的未来更新或实际发布之前,触摸拖动可能会被禁用更新基于答案:
我将 listView 的 CanDragItems 和 IsSwipeEnabled 设置为 True,但这并没有改变任何东西。我应用了一些奇怪的结果的操作矩形。在 Phone 上,我可以拖动矩形,但是当我将它放入我的 ListView 时,它会消失。这些图片显示:
完整矩形:
将其拖出 Framework 元素 - 它被拖到 listView 后面。
在Desktop上,矩形拖到listView前面,拖出原来的Framework Element后,就不可拖了。
所有触摸屏操作所需的东西都在盒子里。有一个简单的例子 - Rectangle
on the Canvas
:
<Canvas Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Rectangle Width="50" Height="50" Fill="Blue" RenderTransformOrigin="0.5,0.5"
ManipulationDelta="Rectangle_ManipulationDelta" ManipulationMode="All">
<Rectangle.RenderTransform>
<TranslateTransform x:Name="dragTranslation" />
</Rectangle.RenderTransform>
</Rectangle>
</Canvas>
最小的处理代码是:
private void Rectangle_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e) {
dragTranslation.X += e.Delta.Translation.X;
dragTranslation.Y += e.Delta.Translation.Y;
}
足以在触摸屏和桌面上使用鼠标将任何 UIElement
拖动到 Canvas
上。拖动 Grid
也有效。