#c# #xaml #uwp #windows-10-universal
#c# #xaml #увп #windows-10-universal #uwp
Вопрос:
У меня есть UWP-приложение (игра). Вся поверхность приложения представляет собой Win2D AnimatedCanvasControl с включенным перетаскиванием.
Я закодировал обработчик перетаскивания для подавления заголовка фреймворка («Переместить» / «Скопировать» / и т.д.) И глифа.
private void CnvGemSmash_DragOver (Object sender, DragEventArgs e)
{
e.AcceptedOperation = DataPackageOperation.None;
e.DragUIOverride.IsCaptionVisible = false;
e.DragUIOverride.IsGlyphVisible = false;
Это работает, НО не раньше, чем примерно через 1 секунду после начала перетаскивания. Я просмотрел API-интерфейсы в поисках способа избежать появления глифа на эту долю секунды — в моем приложении это выглядит ужасно.
Есть ли какой-либо способ обойти это?
Комментарии:
1. Этот пример кода может быть полезен.
2. Пожалуйста, попробуйте изменить
e.AcceptedOperation
наDataPackageOperation.Copy
.3. @NicoZhu Я просмотрел образцы и ссылку на API. Что я беру от них, так это то, что я не могу подавить глиф при перетаскивании, поскольку версия DragUI, которая передается в это событие, не раскрывает глиф. Итак, моя первая возможность удалить глиф — это DragOver или DragEnter. Что я и сделал. (Изменение принятой операции просто дало бы мне другой глиф — не уверен, как это поможет!?). Возможно, я понимаю, почему возникает небольшая задержка перед запуском первых событий перетаскивания / ввода, но в свете этого API кажется сломанным, поскольку он не позволяет мне управлять символами.
4. Да, вы правы. причина в том, что область наведения элемента не поддерживает удаление при запуске перетаскивания. Это сделано специально.
5. @NicoZhu Спасибо за подтверждение. Я думаю, я сделаю свою собственную реализацию перетаскивания. Пожалуйста, отправьте свой ответ в качестве ответа, чтобы я мог принять. Это именно то, для чего я задал вопрос.
Ответ №1:
Что я беру от них, так это то, что я не могу подавить глиф при перетаскивании, поскольку версия DragUI, которая передается в это событие, не раскрывает глиф.
Причина в том, что область наведения элемента не поддерживает удаление при запуске перетаскивания. Это сделано специально.