У меня есть приложение WPF 4, в котором я реализовал перетаскивание с использованием стандартного подхода DragDrop.DoDragDrop
, но я делаю это с использованием касания вместо событий мыши.
Мой XAML для моей Сетки (которую я перетаскиваю) выглядит следующим образом:
<Grid x:Name="LayoutRoot"
ManipulationStarting="ManipulationStarting"
ManipulationDelta="ManipulationDelta"
ManipulationCompleted="ManipulationCompleted"
IsManipulationEnabled="True">
<!-- children in here -->
</Grid>
Теперь код такой:
private void ManipulationStarting(object sender, ManipulationStartingEventArgs e)
{
e.ManipulationContainer = this;
e.Handled = true;
}
private void ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
e.Handled = true;
DragDrop.DoDragDrop(this, new DataObject(GetType(), this), DragDropEffects.Move);
}
private void ManipulationCompleted(object sender, ManipulationCompletedEventArgs e)
{
//completed stuff
}
НО , когда я пытаюсь перетащить одним пальцем, в то время как уже перетаскиваю другим пальцем (например, разные руки, которые имитируют двух человек), вторые касания, кажется, не регистрируются должным образом, на самом деле кажется, что Windows думает, что мои два пальца пытаются масштабировать (как жест щепотки) ...
Кто-нибудь знает способ обойти это?
Большое спасибо
Mark