Как настроить перетаскивание касанием в универсальных приложениях Windows на Windows 10 Phone?

Я успешно настроил сетку для перетаскивания мышью с

<Grid x:Name="SourceGrid13"
              CanDrag="True"
              DragStarting="SourceGrid_DragStarting"
              Margin="0,20,0,0">

Однако на Windows Phone (Windows 10) его нельзя перетащить касанием. Как мне это настроить?

Также я предполагаю, что после перетаскивания сетки последовательность перетаскивания будет такой же, как с мышью? Это мой код сброса:

 <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 10 на Windows Phone.

ОБНОВЛЕНИЕ на основе ответов:

Я установил для своих listView CanDragItems и IsSwipeEnabled значение True, но это ничего не изменило. Я применил прямоугольник манипуляции с некоторыми странными результатами. На телефоне я могу перетащить прямоугольник, но когда я помещаю его в свои ListView, он исчезает. Показано этими фотографиями:

Полный прямоугольник:

введите здесь описание изображения

Перетащил его вниз из элемента Framework - он перетаскивается за listView.

введите здесь описание изображения

На рабочем столе прямоугольник перетаскивается перед listView, но после перетаскивания из исходного элемента Framework его нельзя перетаскивать.

введите здесь описание изображения


person Seth Kitchen    schedule 11.11.2015    source источник
comment
Работает ли на телефоне при двойном касании объекта? Согласно this question Это может быть связано с настройками ОС Windows 8. Посмотрите настройки Pen и Touch - d.moncada   -  person Bennett Yeo    schedule 24.11.2015
comment
@KiroYakuza Не работает, если дважды тапнуть. Нет настройки пера и сенсорного ввода (возможно, из-за Windows 10). Когда я ищу ручку, ничего не появляется. Когда я ищу касание, есть настройка касания, но она не открывается.   -  person Seth Kitchen    schedule 24.11.2015
comment
Вы пробовали это решение? stackoverflow .com / questions / 3191084 /   -  person ApceH Hypocrite    schedule 26.11.2015
comment
@ApceHHypocrite Это доступно в Windows Universal? Можете ли вы опубликовать код   -  person Seth Kitchen    schedule 26.11.2015
comment
Похоже, ваши вопросы касаются платформы Windows 10, поэтому я поменял ее теги на более подходящие. Пожалуйста, поправьте меня, если я ошибаюсь.   -  person Romasz    schedule 26.11.2015
comment
Я думаю, вы должны установить для CanDragItems значение true в вашем ListView. Также может понадобиться , чтобы проверить IsSwipeEnabled, так как от этого может зависеть поведение касания мыши.   -  person Romasz    schedule 26.11.2015
comment
@Romasz Я установил оба значения true, но безрезультатно   -  person Seth Kitchen    schedule 30.11.2015
comment
Я думаю, здесь есть 2 разных шаблона: есть функция перетаскивания (CanDragItems, AllowDrop и т. Д.) И используется преобразование рендеринга для перемещения физического положения чего-либо на экране. Вы пытаетесь поместить что-то в другой элемент, чтобы переместить их между собой (похоже, что вы это делаете), или вы пытаетесь просто переместить местоположение элемента на экране с помощью касания?   -  person Dan Harris    schedule 13.07.2016


Ответы (1)


Все необходимое для любых манипуляций с сенсорным экраном находится здесь из коробки. Вот простой пример - 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;
}

Достаточно перетащить любой UIElement на Canvas на сенсорных экранах И на рабочем столе с помощью мыши. Перетаскивание Grid тоже работает.

person ApceH Hypocrite    schedule 25.11.2015
comment
У меня было время только протестировать его на рабочем столе, и он сработал при первом перетаскивании, но после того, как я уронил его, я не могу поднять его снова. Он также не возвращается в прежнее положение после падения. - person Seth Kitchen; 26.11.2015
comment
Я отредактировал свой вопрос с ошибками, связанными с вашим ответом - person Seth Kitchen; 30.11.2015