如何在Windows 10 Phone上的Windows Universal Apps中通过触摸设置拖动?

时间:2015-11-11 19:52:19

标签: c# windows-10 drag uwp windows-10-mobile

我已成功设置我的网格,用鼠标拖动

 <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>

但是,通过触摸,这在Windows Phone(Windows 10)上无法拖动。我该如何设置?

另外我假设一旦我进行网格拖动,下拉顺序将与鼠标相同?这是我的代码:

{{1}}

同样在平板电脑上,它很难,但它会触摸拖动。我是否需要在手机上启用它?

我现在认为触摸拖动可能会被禁用,直到Windows Phone上的Windows 10上的未来更新或实际发布。

更新基于答案:

我将listView的CanDragItems和IsSwipeEnabled设置为True,但这并没有改变任何东西。我用一些奇怪的结果应用了操作矩形。在手机上,我可以拖动矩形,但当我将它带入我的ListViews时,它就会消失。这些图片显示:

Full Rect:

enter image description here

将其拖出Framework元素 - 它被拖到listView后面。

enter image description here

在桌面上,矩形被拖动到listView前面,但是在被拖出原始框架元素后,它是不可分割的。

enter image description here

1 个答案:

答案 0 :(得分:7)

任何触摸屏操作所需的东西都在这里。 Rectangle上有一个简单的示例 - 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;
}

足以在触摸屏和{+ 1}}上拖动任何UIElement鼠标。拖动Canvas也有效。