У меня есть приложение wpf, которое я написал в Windows 7 и отлично работал. Я переношу на окна 8.1, и события касаний действуют совершенно иначе.wpf touch desktop app in windows 8
Я написал элемент управления, который будет переключаться на позиции при перетаскивании на другой элемент управления одним и тем же типом. Ниже перечислены обработчики previewTouchDown и Drop для элемента управления.
private void UserControl_PreviewTouchDown(object sender, TouchEventArgs e)
{
DragDrop.DoDragDrop(this, _comparisonElement, DragDropEffects.Copy);
}
private void UserControl_Drop(object sender, DragEventArgs e)
{
ComparisonCopy from = (ComparisonCopy)e.Data.GetData("comparisonFormat");
ComparisonCopy to = (ComparisonCopy)_comparisonElement.GetData("comparisonFormat");
if (from != to)
{
ComparisonEventArgs args = new ComparisonEventArgs();
args.from = from;
args.to = to;
this.ComparisonMoved(sender, args);
e.Handled = true;
}
}
Выполнение этого в Windows 8.1 заставляет перетаскивание работать один раз. Как только он работает, он больше никогда не будет работать. Кажется, что начальное перетаскивание находится в застрявшем состоянии.
Я пробовал использовать событие DragMove, которое позволит переключаться несколько раз, однако оно будет случайным образом переключать элементы управления. Как только я коснусь другого элемента управления на экране, он заменит последний элемент управления этим. Опять же, похоже, трогательно застрял.
Выполнение этого с помощью мыши работает в 100% случаев.
Благодарим за помощь. -Matt