Разрешить контекстные меню и перетаскивание объектов windows 10
Перетаскивание является интуитивно понятным способом передачи данных в приложении или между приложениями на компьютере с Windows. Перетаскивание дает пользователю возможность перемещать данные между приложениями или внутри приложения с помощью стандартного жеста ("нажатие-удержание-сдвиг" с помощью пальца или "нажатие-сдвиг" с помощью мыши или пера).
Источник перетаскивания, который является приложением или областью, в которой запускается жест перетаскивания, предоставляет данные для передачи путем заполнения объекта пакета данных, который может содержать стандартные форматы данных, включая текст, RTF, HTML, точечные рисунки, элементы хранилища или пользовательские форматы данных. Источник также обозначает тип операций, которые он поддерживает: копировать, переместить или ссылка. При освобождении указателя выполняется перетаскивание. Место переноса, которое является приложением или областью под указателем, обрабатывает пакет данных и возвращает тип выполненной операции.
Во время перетаскивания пользовательский интерфейс перетаскивания предоставляет визуальную индикацию типа выполняемой операции перетаскивания. Эта визуальная обратная связь изначально предоставляется источником, но может быть изменена местом переноса при наведении на них указателя.
Современная функция перетаскивания доступна на всех устройствах, поддерживающих UWP. Эта функция позволяет передавать данные между приложениями любого типа либо внутри самого приложения, включая классические Windows-приложения. Тем не менее в этой статье основное внимание уделяется API-интерфейсу XAML для современной операции перетаскивания. После реализации функции перетаскивание корректно работает во всех направлениях, в том числе из приложения UWP в приложение UWP, из приложения UWP в классическое приложение и из классического приложения в приложение UWP.
Здесь приведен обзор действий по реализации функции перетаскивания в вашем приложении.
- Включите возможность перетаскивания элемента, установив для его свойства CanDrag значение true.
- Выполнять построение пакета данных. Система обрабатывает изображения и текст автоматически, но для другого содержимого необходимо обрабатывать события DragStarted и DragCompleted и использовать их для создания собственного пакета данных.
- Включите перетаскивание, задав свойству AllowDrop значение true для всех элементов, которые могут принимать перетаскиваемое содержимое.
- Обработайте событие DragOver, чтобы сообщить системе, какие типы операций перетаскивания может принимать элемент.
- Обработайте событие Drop для получения перетаскиваемого содержимого.
Включение перетаскивания
Чтобы включить возможность перетаскивания элемента, задайте его свойству CanDrag значение true. Это делает элемент и содержащиеся в нем элементы в случае коллекций, например ListView, с помощью перетаскивания.
Определите, какие элементы будут поддерживать перетаскивание. Пользователям не требуется перетаскивать все содержимое в вашем приложении; только определенные элементы, такие как изображения и текст.
Чтобы разрешить перетаскивание, больше ничего делать не нужно, если только вы не собираетесь менять пользовательский интерфейс (об этом рассказывается дальше в статье). Для настройки завершения перетаскивания придется выполнить некоторые действия.
Создание пакета данных
В большинстве случаев система будет создавать пакет данных за вас. Система автоматически обрабатывает:
При работе с другим содержимым необходимо обработать события DragStarted и DragCompleted и использовать их для создания собственного пакета данных DataPackage.
Включение отпускания
Следующая разметка демонстрирует, как сделать отпускание доступным для конкретной области приложения, используя AllowDrop в XAML. Если пользователь попытается отпустить перетаскиваемое содержимое в другом месте, система не позволит сделать это. Если вы хотите, чтобы пользователи могли использовать перетаскивание в любом месте вашего приложения, установите весь фон в качестве места переноса.
Обработка события DragOver
Событие DragOver возникает, когда пользователь перетаскивает элемент в приложении, но еще не завершил этот процесс. В этом обработчике необходимо с помощью свойства AcceptedOperation выбрать, какой вид операции будет поддерживать ваше приложение. Наиболее распространено копирование.
Обработка завершения перетаскивания
Событие Drop возникает, когда пользователь отпускает элементы в допустимой области приложения. Обработайте их с помощью свойства DataView.
Для простоты в примере ниже предположим, что пользователь перетащил одну фотографию напрямую. На самом деле пользователи могут перетаскивать несколько элементов разных форматов одновременно. Ваше приложение должно обрабатывать эту возможность, проверяя, какие типы файлов были перемещены перетаскиванием и сколько файлов существует, и обрабатывать каждый из них соответствующим образом. Вам также необходимо решить, следует ли уведомить пользователей, если они пытаются сделать что-то, что ваше приложение не поддерживает.
Настройка пользовательского интерфейса
Система предоставляет пользовательский интерфейс по умолчанию для перетаскивания. Также можно настроить различные области пользовательского интерфейса, например пользовательские заголовки и глифы, или вообще отключить отображение пользовательского интерфейса. Чтобы настроить пользовательский интерфейс, используйте свойство DragEventArgs.DragUIOverride.
Открытие контекстного меню на элементе, который можно перетаскивать с помощью сенсорного управления
При использовании сенсорного управления перетаскивание UIElement и открытие его контекстного меню выполняются аналогичными сенсорными жестами, каждый из которых начинается с нажатия и удерживания. Вот как система различает эти два действия над элементами в вашем приложении, поддерживающими оба действия:
- Если пользователь нажмет и будет удерживать элемент и начнет перетаскивать его в пределах 500 миллисекунд, элемент перетаскивается, а контекстное меню не отображается.
- Если пользователь нажмет и будет удерживать элемент, но не начнет перетаскивать его в течение 500 миллисекунд, открывается контекстное меню.
- Если пользователь попытается перетащить элемент (не отрывая палец) после открытия контекстного меню, меню закрывается, и начинается перетаскивание.
Обозначение элемента в ListView или GridView в качестве папки
Вы можете указать ListViewItem или GridViewItem как папку. Это особенно удобно в сценариях TreeView и проводника. Для этого явно задайте свойству AllowDrop значение True для этого элемента.
Система автоматически отобразит соответствующие анимации перетаскивания в папку в противоположность элементу, не являющемся папкой. Код вашего приложения должен продолжать обрабатывать событие Drop элемента папки (а также элемента, не являющегося папкой), чтобы обновить источник данных и добавить перетаскиваемый элемент в целевую папку.
Включение изменения порядка перетаскивания в ListView
ListViewподдерживает изменение порядка на основе перетаскивания, используя API, очень похожий на API кандроп , описанный в этой статье. Как минимум необходимо добавить свойства AllowDrop и канреордеритемс .
Реализация пользовательской функции перетаскивания
Класс UIElement выполняет большую часть работы по реализации функции перетаскивания за вас. Но при необходимости можно реализовать собственную версию с помощью API-интерфейсов в Windows. Пространство имен ApplicationModel. передает. DragDrop. Core.
В Windows 10 Microsoft удалила из контекстного меню папок и файлов опции «Копировать в папку…» и «Переместить в папку…», посчитав их, очевидно, излишними в операционной системе, в которой операции копирования и перемещения можно выполнять простым перетаскиванием или нажатием «горячих» клавиш Ctrl + X , Ctrl + C и Ctrl + V . Пользователям, недавно перешедшим с более ранних версий системы на Windows 10 такое изменение может показаться не особо удачным.
Особенно если в процессе работы они часто прибегали к указанным опциям.
Так вот, при необходимости их легко восстановить, потратив всего пять минут времени.
Жмем Win + R , вводим команду regedit , открываем одноименный редактор реестра и переходим к ключу:
HKCR\AllFilesystemObjects\ShellEx\ContextMenuHandlers
Кликнув по пустому месту в правой колонке, выбираем «Создать раздел».
И создаем подраздел с именем Move To .
Затем точно так же создаем второй подраздел и даем имя Copy To .
За сим выделяем новосозданный раздел Move To , двойным кликом открываем окошко изменения параметра по умолчанию и присваиваем ему значение .
Аналогичную процедуру проделываем с параметром по умолчанию подраздела Copy To , но на этот раз в качестве значения указываем строку .
Изменения станут очевидными сразу же, перезапускать Проводник нет никакой необходимости.
Если оставить всё как есть, контекстные меню в системе Windows быстро становятся переполненными. Когда в меню при нажатии правой кнопкой мыши слишком много объектов, через которые нельзя прокручивать колесом мыши, приходится нажимать на стрелки наверху и внизу, что неудобно.
При этом, наверняка, в контекстном меню есть по меньшей мере одна программа, которую вы никогда не используете.
- Добавление и удаление объектов в контекстное меню
- Бонус
- Другие инструменты
- Easy Context Menu
- Filemenu Tools
- Right Click Enhancer
Вы можете настроить контекстное меню по своему усмотрению, избавившись от ненужных добавленных сторонними приложениями команд. Различные инструменты упрощают процесс добавления команд в часто используемое программное обеспечение, утилиты и т.д.
Microsoft даёт возможность получить быстрый доступ к разным панелям управления и местоположениям, нажав правой кнопкой мыши на меню «Пуск» или используя сочетание клавиш Windows + X. При этом в контекстных меню не хватает множества полезных команд.
Например, не помешала бы возможность очищать корзину на рабочем столе Windows при помощи контекстных меню из любого места системы. Добавление команды очистки корзины при нажатии правой кнопкой мыши по рабочему столу позволит обойтись без использования иконки корзины.
Другие идеи для добавления в контекстное меню Windows:
- Командная строка с правами администратора
- Возможность подтверждать владение файлами и папками
- Команды для перезагрузки, выключения и спящего режима
- Ускорение доступа к инструментам вроде «Очистка системы», «Восстановление системы» и тому подобным, которые обычно находятся глубоко внутри меню
Утилита «Управление компьютером» в Windows даёт доступ к менеджеру диска операционной системы, диспетчеру устройств, монитору производительности, планировщику задач, просмотрщику событий, сервисам и т.д. в одном месте. Удобно было бы добавить её в контекстное меню.
Нужно иметь в виду, что многие инструменты контекстного меню правильно работают только при запуске с правами администратора.
Такой вариант запуска должен быть доступен в тот момент, когда вы правой кнопкой мыши щёлкните на исполняемый файл. Также вы можете кликнуть на программу, удерживая на клавиатуре Control и Shift.
Добавление и удаление объектов в контекстное меню
Если вы хотите удалить из меню только один объект, лучше делать это при помощи возможностей самой системы.
Другим наиболее быстрым способом является утилита CCleaner (Инструменты > Запуск> Контекстное меню), хотя во время тестирования здесь не было полного списка программного обеспечения из контекстного меню. Рекомендуется использовать эту портативную версию предложения, которую можно быстро удалить.
Glary Utilities предлагает похожий уровень функциональности с более удобным интерфейсом, но программа бесплатная только поначалу.
Бонус
Можно выбрать, будет появляться контекстное меню слева или справа от указателя мыши. Откройте диалоговое окно «Выполнить» и введите для запуска окна «Параметры планшетного компьютера»:
Откройте вкладку «Другие» для выбора стороны отображения меню.
Перемещение файлов или папок или даже абзацев и предложений во время работы на компьютере невозможно, если вы не можете перетаскивать их в Windows 10 .
Если у вас возникли проблемы с функцией перетаскивания на вашем компьютере, вот 12 быстрых исправлений, которые можно использовать для ее устранения.
Решение 1. Запустите инструмент DISM
Если вы не можете перетащить в Windows 10, запустите инструмент DISM или инструмент обслуживания образов развертывания и управления ими.
Вот как можно запустить команду DISM на вашем компьютере, чтобы проверить, помогает ли она вам, когда вы не можете перетащить ее в Windows 10:
- Нажмите Пуск .
- В поле поиска введите CMD .
- Нажмите Командная строка в списке результатов поиска.
- Введите Dism/Online/Cleanup-Image/ScanHealth
- Введите Dism/Online/Cleanup-Image/RestoreHealth .
После завершения восстановления перезагрузите компьютер и проверьте, сохраняется ли проблема, после чего вы можете запустить сканирование SFC, как описано в следующем решении.
Решение 2. Запустите проверку средства проверки системных файлов
Сканирование проверки системных файлов проверяет или сканирует все защищенные системные файлы, а затем заменяет неправильные версии подлинными и правильными версиями Microsoft.
Вот как это сделать:
- Нажмите Пуск .
- Перейдите в поле поиска и введите CMD .
- Щелкните правой кнопкой мыши Командную строку в результатах поиска и выберите Запуск от имени администратора .
- Нажмите Enter .
- Перезагрузите компьютер
Если вы все еще не можете перетащить в Windows 10, попробуйте следующее решение.
Узнайте все, что нужно знать о программе проверки системных файлов, из нашего подробного руководства!
Решение 3. Выполните чистую загрузку
Выполнение чистой загрузки для вашего компьютера уменьшает конфликты, связанные с программным обеспечением, которые могут выявить основные причины, когда вы не можете перетащить в Windows 10.
Эти конфликты могут быть вызваны приложениями и службами, которые запускаются и работают в фоновом режиме, когда вы обычно запускаете Windows.
Как выполнить чистую загрузку
Чтобы успешно выполнить чистую загрузку в Windows 10, вы должны войти в систему как администратор, а затем выполните следующие действия:
- Установите флажок Скрыть все службы Microsoft .
- Нажмите Отключить все .
- Перейдите на вкладку Автозагрузка .
- Нажмите Открыть диспетчер задач .
- Закройте диспетчер задач и нажмите ОК .
- Перезагрузите компьютер
У вас будет чистая среда загрузки после того, как все эти шаги будут тщательно выполнены, после чего вы можете попробовать и проверить, не удается ли по-прежнему перетаскивать Windows 10 или проблема исчезла.
Решение 4. Установите обновления Windows
Если вы проверите обновления Windows и обнаружите, что обновления доступны, установите их и проверьте, поможет ли это устранить проблему.
Выполните следующие шаги, чтобы сделать это:
- Нажмите Пуск .
- Перейти в поле поиска
- Тип Обновление
- Нажмите Проверить наличие обновлений и установите все перечисленные обновления.
Windows немедленно обнаружит конфигурацию вашей системы и загрузит соответствующие.
Решение 5: перезагрузите компьютер
Выполнение сброса позволяет вам выбрать, какие файлы вы хотите сохранить или удалить, а затем переустанавливать Windows.
Вот как это сделать:
- Нажмите Обновление и безопасность .
- Нажмите Восстановление на левой панели.
- В разделе Сбросить этот компьютер нажмите Начало работы .
- На синем экране Выберите вариант выберите вариант Сохранить мои файлы .
Примечание. все ваши личные файлы будут удалены, а настройки сброшены. Любые установленные вами приложения будут удалены, и только предустановленные приложения, поставляемые с вашим ПК, будут переустановлены.
Если вы все еще не можете перетащить в Windows 10, попробуйте следующее решение.
Сохраните ваши личные данные с помощью этих инструментов резервного копирования для Windows!
Решение 6: Изменить реестр
Вот как это сделать, но будьте осторожны, чтобы следовать инструкциям, как они:
- Введите regedit
- Нажмите Enter .
- Перейдите на страницу HKEY_LOCAL_MACHINE> ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ> Microsoft> Windows> CurrentVersion> Политики> Система .
- Отследить клавишу EnableLUA
- Нажмите правой кнопкой мыши EnableLUA и выберите Изменить .
Проверьте, если после перезагрузки проблема исчезла. Если вы все еще не можете перетащить в Windows 10, попробуйте следующее решение.
Будьте мудры и выберите из этого списка более удобный редактор реестра!
Решение 7. Запустите полное сканирование с использованием Microsoft Security Essentials
Установите и запустите MSE и Защитник Windows
MSE, или Microsoft Security Essentials, является бесплатной программой удаления вредоносных программ, предлагаемой Microsoft, которая защищает ваш компьютер от инфекций.
Выполните эти шаги, чтобы использовать MSE и выполнить полное сканирование:
- Если у вас не установлен MSE, перейдите на веб-сайт и установите его, а затем перейдите к следующим шагам.
- Нажмите Пуск .
- Нажмите Все приложения .
- Нажмите Microsoft Security Essentials .
- Перейдите на вкладку Главная .
- Выберите Полное сканирование .
- Нажмите Сканировать сейчас .
Если после выполнения этих шагов вы все еще не можете перетащить в Windows 10, попробуйте следующее решение.
Решение 8. Удалите и переустановите Заборы
Если у вас есть Заборы на вашем компьютере, попробуйте удалить и переустановить, выполнив следующие действия:
- Удалите Заборы .
- Удалите все файлы Stardocks в папках Программа и данные программы с помощью программы удаления или удалите их
- Переустановите Заборы .
- Перейдите в Вид .
- Снимите флажок Значки автоматической расстановки и Выровнять значки по сетке .
Проверьте, восстановлено ли перетаскивание. Если вы все еще не можете перетащить в Windows 10, попробуйте следующее решение.
Упростите эту задачу, используя инструмент удаления из нашего нового списка!
Решение 9. Запустите средство устранения неполадок оборудования и устройств
Если вы не можете перетащить в Windows 10, запустите средство устранения неполадок оборудования и устройств, чтобы решить эту проблему.
Это проверяет наличие часто возникающих проблем и гарантирует, что любое новое устройство или оборудование правильно установлено на вашем компьютере.
Вот как это сделать:
- Нажмите правой кнопкой мыши Пуск .
- Выберите Панель управления .
- Перейдите на страницу Просмотр по в правом верхнем углу.
- Нажмите стрелку раскрывающегося списка и выберите Большие значки .
- Нажмите Устранение неполадок .
- Нажмите Далее , чтобы запустить средство устранения неполадок.
Следуйте инструкциям для запуска устранения неполадок оборудования и устройств. Средство устранения неполадок начнет обнаруживать любые проблемы, которые могут вызывать проблему перетаскивания.
Если вы все еще не можете перетащить в Windows 10, попробуйте следующее решение.
Решение 10. Удалите и переустановите драйверы мыши
Вот как это сделать:
- Нажмите правой кнопкой мыши Пуск .
- Выберите Диспетчер устройств .
- Разверните Мыши и другие указывающие устройства , чтобы открыть список
- Щелкните правой кнопкой мыши на устройстве мыши, которое вы хотите удалить
- Нажмите Удалить .
Примечание: свяжитесь с производителем вашего устройства для получения последних версий драйверов мыши.
Если вы все еще не можете перетащить в Windows 10, попробуйте следующее решение.
Используйте лучший инструмент для удаления драйверов, чтобы убедиться, что все удаляется!
Решение 11. Выполните восстановление при запуске
Вот шаги, чтобы сделать это:
После завершения восстановления проверьте, исчезла ли проблема перетаскивания, затем снова запустите Центр обновления Windows, чтобы получить самые последние обновления.
Решение 12. Включите перетаскивание с помощью клавиши ESC
Вот как использовать клавишу Escape для включения перетаскивания:
- Откройте проводник или Проводник Windows .
- Нажмите любой файл и долгое нажатие левой кнопкой мыши
- Нажмите клавишу Escape .
Проверьте, решает ли это проблему.
Помогло ли какое-либо из этих 12 исправлений решить проблему перетаскивания? Дайте нам знать в комментариях ниже.
Читайте также: