Здравствуйте любители перетаскивания,
Кто-нибудь может объяснить, почему я вижу большую задержку при использовании перетаскивания с моими приложениями UWP?
Я написал тестовое приложение, которое содержит только обработчики сообщений перетаскивания, а также обработчики указателей для сравнения. Вот код...
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
grid1.AllowDrop = true;
grid1.DragOver += Grid1_DragOver;
grid1.Drop += Grid1_Drop;
grid1.DragLeave += Grid1_DragLeave;
grid1.PointerEntered += Grid1_PointerEntered;
grid1.PointerExited += Grid1_PointerExited;
}
// Drag Handlers ************************
private void Grid1_DragOver(object sender, DragEventArgs e)
{
msgFromPointer.Text = " drag/drop item has entered";
e.AcceptedOperation = Windows.ApplicationModel.DataTransfer.DataPackageOperation.Copy;
Debug.WriteLine("in grid1 drag over handler");
}
private void Grid1_DragLeave(object sender, DragEventArgs e)
{
msgFromPointer.Text = "";
}
private void Grid1_Drop(object sender, DragEventArgs e)
{
Debug.WriteLine("in grid1 drop handler");
}
// pointer handlers *******************
private void Grid1_PointerEntered(object sender, PointerRoutedEventArgs e)
{
msgFromPointer.Text = "POINTER has entered";
}
private void Grid1_PointerExited(object sender, PointerRoutedEventArgs e)
{
msgFromPointer.Text = "";
}
При перетаскивании в мое приложение, кажется, происходит задержка около 1/2 секунды, прежде чем мое приложение получает сообщение dragOver. Для сравнения, кажется, что сообщение pointerOver поступает почти одновременно с перемещением указателя. Медленное поведение одинаково при использовании сенсорного экрана или мыши. Вот видео поведения…
Компьютер, который я использую, имеет сенсорный экран, и мне интересно, есть ли какой-то сенсорный «драйвер» или фильтр, который замедляет сообщение перетаскивания. Я пробовал кучу настроек конфигурации Windows, таких как настройки мыши и дисплея, но без изменений. ПК — Dell Inspiron 3593 с последними драйверами. Моя версия Windows 10 — 1903, сборка 18362.836.
Приложение, которое я разрабатываю, использует много перетаскивания, и это медленное поведение делает пользовательский интерфейс действительно сложным. Это как пытаться вести телефонный разговор с задержкой в 1/2 секунды.
Любые идеи?
Дэн