Что такое перетаскивание для чего оно применяется
Перетаскивание мышью
Drag-and-drop (перетаскивание) — форма выполнения каких-либо действий в графических интерфейсах пользователя (GUI), подразумевающая использование компьютерной мыши. В переводе с английского означает буквально: тащи-и-бросай. Действие выполняется путём оперирования видимыми на экране компьютера объектами при помощи манипулятора мышь. Суть действий заключается в перемещении виртуальных объектов относительно друг друга и таким образом выполнении каких-либо действий в приложении либо при взаимодействии нескольких приложений. Базовыми действиями и самыми простыми примерами drag-and-drop действий являются перемещение объекта, перемещение объекта в каталог, хотя в современных операционных системах drag-and-drop получил широкое применение и является одним из главных способов взаимодействия с компьютером в графическом интерфейсе пользователя.
Смотреть что такое «Перетаскивание мышью» в других словарях:
Щелчок (нажатие клавиши) — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете … Википедия
Клик (нажатие клавиши) — У этого термина существуют и другие значения, см. Клик. Клик (англ. click щелчок) нажатие одной из кнопок указательного устройства ввода. Название происходит от особенности большинства компьютерных мышей. Содержание … Википедия
GreenBrowser — Тип Браузер Разработчик More Quick Tools Операционная система Microsoft Windows Языки интерфейса Мультиязычная поддержка (23 языковых пакет … Википедия
Перетаскивание мышью в Windows — компьютерные уроки
Перетаскивание — этот неуклюжий термин по-английски называется drag— and— drop.
Прием выполняется точно так же, как и протягивание, но используется для перемещения объектов. Перетаскиваемые объекты должны быть предварительно выделены.
Для примера щелкните левой кнопкой мыши на значке Мой компьютер — произойдет его выделение. Не отпуская кнопку мыши, переместите значок в другое место Рабочего стола и там отпустите. Значок займет новое положение.
Перемещать с помощью мыши можно и окна. Каждое окно имеет строку заголовка — за нее и выполняется перемещение. С помощью приема перетаскивания можно запускать программы, открывать и даже обрабатывать документы.
Попробуйте, например, перетащить значок документа на значок программы, которая предназначена для работы с ним Одновременно произойдет и запуск программы, и открытие в ней доку мента. Кстати, это не обязательно делать со значками — вполне годятся и ярлыки, как показано на рисунке ниже:
Специальное перетаскивание выполняется так же, как и обычное, но при нажатой правой кнопке мыши, а не левой. Действие похожее, а результат — другой. При обычном перетаскивании объект перемещается а при специальном перетаскивании действие можно выбрать.
Выбор нужной команды завершает операцию. По команде Переместить объект занимает новое положение, а его старая копия уничтожается.
По команде Копировать создается новая копия документа в новом месте, однако и старая копия продолжает существовать.
Если требуется удобный доступ к программе, документу или устройству, создайте нужное число ярлыков и расположите их в удобных местах.
Допустим, вы хотите узнать, что содержится на жестком диске (диск С:) компьютера. Однако на Рабочем столе значка диска С: вы не найдете.
Откройте окно — Мой компьютер и разыщите в нем значок диска С:. Дважды щелкните на этом значке — откроется окно, в котором представлено содержимое диска. Закройте его щелчком на закрывающей кнопке (кнопка «х» в правом верхнем углу окна).
Давайте подумаем, как сделать, чтобы обеспечить доступ к диску С: не из окна Мой компьютер, а непосредственно с Рабочего стола.
Попробуйте методом перетаскивания скопировать значок С: из окна — Мой компьютер на Рабочий стол. У вас ничего не выйдет. Это должно быть понятно: жесткий диск с именем С: на компьютере только один, и никаких копий у него быть не может.
Теперь попробуйте воспользоваться методом специального перетаскивания при нажатой правой кнопке мыши и создать ярлык жесткого диска на Рабочем столе. Эта операция пройдет успешно, поскольку вы не создаете новых копий жесткого диска, а просто устанавливаете на него указатель (вот именно его можно удалить при необходимости). Убедитесь в том, что двойной щелчок на ярлыке точно так же открывает содержимое жесткого диска, как и двойной щелчок на основном значке.
Теперь давайте установим различия между значком объекта и ярлыком значка объекта.
Щелкните правой кнопкой мыши на значке диска С: и выберите в контекстном меню пункт — Свойства. В открывшемся диалоговом окне вы увидите свойства диска: объем, размер свободного пространства и другие. То есть значок представляет объект, он ему соответствует и обеспечивает доступ к его свойствам.
Теперь щелкните правой кнопкой мыши на ярлыке значка диска С: и снова выберите в контекстном меню пункт Свойства. Вы увидите, что в этом случае нет никаких свойств диска С: система вам не покажет —только свойства самого ярлыка.
Таким образом, ярлык не представляет того объекта, который с ним связан, и не обеспечивает доступ к его свойствам. Это только указатель. Точно так же указатель «Гастроном за углом» помогает найти гастроном, но отнюдь его не заменяет ;).
Перетаскивание значка с помощью правой кнопки — самый удобный, хотя и не единственный способ создания ярлыков. Сделайте себе ярлык значка — Мой компьютер на Панели быстрого запуска. В будущем он не раз вам пригодится.
Перетащите и отпустите
содержание
Основы
В современном графическом интерфейсе обычных операционных систем большинство элементов можно перетаскивать на другие; эффект зависит от типа элемента и от того, удерживаете ли вы левую или правую кнопку мыши (или эквивалент других указывающих устройств) во время перетаскивания.
Визуализация
При полной реализации пользователь получает немедленную обратную связь во всех важных моментах операции перетаскивания:
Выделите элемент
Поскольку перетаскивание определяется как перетаскивание с нажатой кнопкой мыши, операция всегда начинается с перемещения указателя мыши над объектом и нажатия одной из кнопок. Выбор элемента обычно связан с началом процесса перетаскивания и падение. Лишь изредка можно встретить более непрактичный вариант, когда нужно предварительно щелкнуть элемент, который нужно перетащить.
Тянуть
Полные реализации перетаскивания обеспечивают визуальную обратную связь, как только пользователь перетаскивает элемент, то есть перемещает мышь, удерживая кнопку мыши. Чтобы упростить поиск целевого объекта при перетаскивании, перетаскиваемый элемент часто отображается полупрозрачным, так что фон мерцает: он «разделяется» на объект в исходном месте и перетаскиваемое изображение выбранного элемента, которое перемещается с курсор и так указывает на возможность перетаскивания.
Отображение возможности выпадения
Часто показано, какое действие вызовет перетаскивание элемента. Если пользователь перетаскивает элемент над возможной целью перетаскивания, это можно распознать по перетаскиванию или «прикосновению» к элементу. Если элемент можно перетащить в область, эта область обычно выделяется. Опять же, этого не происходит, если пользователь проезжает новую возможность сброса в пределах области. Затем он будет выделен.
В большинстве случаев выделение опции перетаскивания выполняется рамками или сменой цвета. В особых случаях, например, при размещении нескольких элементов, часто отображается точка вставки или создается зазор в месте размещения перетаскиваемого элемента. При перетаскивании файла на значок папки можно использовать маленькие символы, чтобы указать, просто ли файл перемещается, копируется или создается ссылка на файл.
Если падение на элементе не имеет смысла (например, поместить папку в себя), не только нет выделения, но и рядом с указателем появляется дополнительное примечание в виде запрещающего знака или чего-то подобного. При перетаскивании нескольких элементов опция перетаскивания обычно отображается только в том случае, если все перетаскиваемые элементы подходят для выполняемого действия.
Уронить
После Drop (немецкий релиз или drop it ) пользователь почти всегда получает обратную связь об успешности его действия с элементом.
Иногда элементы остаются выделенными даже после того, как они были успешно перетаскены, или несколько элементов, которые были освобождены одновременно, перемещаются в соответствии с порядком, в котором они были выбраны.
Области применения
Перетаскивание зарекомендовало себя как наиболее интуитивно понятный вариант работы со следующими командами:
Перетаскивайте на веб-сайты
В частности, одновременное перетаскивание разных элементов и отображение опции перетаскивания долгое время было возможно только в отдельных браузерах. Это становится важным, как только элементы на веб-сайте нужно не только перемещать, но и запускать действия при отпускании мыши. (см. выше ). В HTML5 впервые сделана попытка предоставить стандартизированные и встроенные функции перетаскивания.
Веб-фреймворки, такие как jQuery, также предоставляют решение для действий полного перетаскивания.
Перетаскивание
Перетаскивание является интуитивно понятным способом передачи данных в приложении или между приложениями на компьютере с Windows. Перетаскивание дает пользователю возможность перемещать данные между приложениями или внутри приложения с помощью стандартного жеста («нажатие-удержание-сдвиг» с помощью пальца или «нажатие-сдвиг» с помощью мыши или пера).
Источник перетаскивания, который является приложением или областью, в которой запускается жест перетаскивания, предоставляет данные для передачи путем заполнения объекта пакета данных, который может содержать стандартные форматы данных, включая текст, RTF, HTML, точечные рисунки, элементы хранилища или пользовательские форматы данных. Источник также обозначает тип операций, которые он поддерживает: копировать, переместить или ссылка. При освобождении указателя выполняется перетаскивание. Место переноса, которое является приложением или областью под указателем, обрабатывает пакет данных и возвращает тип выполненной операции.
Во время перетаскивания пользовательский интерфейс перетаскивания предоставляет визуальную индикацию типа выполняемой операции перетаскивания. Эта визуальная обратная связь изначально предоставляется источником, но может быть изменена местом переноса при наведении на них указателя.
Современная функция перетаскивания доступна на всех устройствах, поддерживающих UWP. Эта функция позволяет передавать данные между приложениями любого типа либо внутри самого приложения, включая классические Windows-приложения. Тем не менее в этой статье основное внимание уделяется API-интерфейсу XAML для современной операции перетаскивания. После реализации функции перетаскивание корректно работает во всех направлениях, в том числе из приложения UWP в приложение UWP, из приложения UWP в классическое приложение и из классического приложения в приложение UWP.
Здесь приведен обзор действий по реализации функции перетаскивания в вашем приложении.
Включение перетаскивания
Чтобы включить возможность перетаскивания элемента, задайте его свойству CanDrag значение true. Это делает элемент и содержащиеся в нем элементы в случае коллекций, например ListView, с помощью перетаскивания.
Определите, какие элементы будут поддерживать перетаскивание. Пользователям не требуется перетаскивать все содержимое в вашем приложении; только определенные элементы, такие как изображения и текст.
Чтобы разрешить перетаскивание, больше ничего делать не нужно, если только вы не собираетесь менять пользовательский интерфейс (об этом рассказывается дальше в статье). Для настройки завершения перетаскивания придется выполнить некоторые действия.
Создание пакета данных
В большинстве случаев система будет создавать пакет данных за вас. Система автоматически обрабатывает:
При работе с другим содержимым необходимо обработать события DragStarted и DragCompleted и использовать их для создания собственного пакета данных DataPackage.
Включение отпускания
Следующая разметка демонстрирует, как сделать отпускание доступным для конкретной области приложения, используя AllowDrop в XAML. Если пользователь попытается отпустить перетаскиваемое содержимое в другом месте, система не позволит сделать это. Если вы хотите, чтобы пользователи могли использовать перетаскивание в любом месте вашего приложения, установите весь фон в качестве места переноса.
Обработка события DragOver
Событие DragOver возникает, когда пользователь перетаскивает элемент в приложении, но еще не завершил этот процесс. В этом обработчике необходимо с помощью свойства AcceptedOperation выбрать, какой вид операции будет поддерживать ваше приложение. Наиболее распространено копирование.
Обработка завершения перетаскивания
Событие Drop возникает, когда пользователь отпускает элементы в допустимой области приложения. Обработайте их с помощью свойства DataView.
Для простоты в примере ниже предположим, что пользователь перетащил одну фотографию напрямую. На самом деле пользователи могут перетаскивать несколько элементов разных форматов одновременно. Ваше приложение должно обрабатывать эту возможность, проверяя, какие типы файлов были перемещены перетаскиванием и сколько файлов существует, и обрабатывать каждый из них соответствующим образом. Вам также необходимо решить, следует ли уведомить пользователей, если они пытаются сделать что-то, что ваше приложение не поддерживает.
Настройка пользовательского интерфейса
Система предоставляет пользовательский интерфейс по умолчанию для перетаскивания. Также можно настроить различные области пользовательского интерфейса, например пользовательские заголовки и глифы, или вообще отключить отображение пользовательского интерфейса. Чтобы настроить пользовательский интерфейс, используйте свойство DragEventArgs.DragUIOverride.
Открытие контекстного меню на элементе, который можно перетаскивать с помощью сенсорного управления
При использовании сенсорного управления перетаскивание UIElement и открытие его контекстного меню выполняются аналогичными сенсорными жестами, каждый из которых начинается с нажатия и удерживания. Вот как система различает эти два действия над элементами в вашем приложении, поддерживающими оба действия:
Обозначение элемента в ListView или GridView в качестве папки
Вы можете указать ListViewItem или GridViewItem как папку. Это особенно удобно в сценариях TreeView и проводника. Для этого явно задайте свойству AllowDrop значение True для этого элемента.
Система автоматически отобразит соответствующие анимации перетаскивания в папку в противоположность элементу, не являющемся папкой. Код вашего приложения должен продолжать обрабатывать событие Drop элемента папки (а также элемента, не являющегося папкой), чтобы обновить источник данных и добавить перетаскиваемый элемент в целевую папку.
Включение изменения порядка перетаскивания в ListView
Реализация пользовательской функции перетаскивания
Класс UIElement выполняет большую часть работы по реализации функции перетаскивания за вас. Но при необходимости можно реализовать собственную версию с помощью API-интерфейсов в Windows. Пространство имен ApplicationModel. передает. DragDrop. Core.
Пошаговое руководство. Выполнение операции перетаскивания в Windows Forms
Перетаскивание данных
Все операции перетаскивания начинаются с переноса данных. Функция, позволяющая собирать данные при начале перетаскивания, реализуется в DoDragDrop методе.
В следующем примере MouseDown событие используется для запуска операции перетаскивания, поскольку она является наиболее интуитивно понятной (большинство действий по перетаскиванию начинается с нажатия кнопки мыши). Однако не забывайте, что любое событие может использоваться для инициализации процедуры перетаскивания.
Некоторые элементы управления имеют собственные события перетаскивания. ListView TreeView Для элементов управления и, например, имеется ItemDrag событие.
Начало операции перетаскивания
В MouseDown событии для элемента управления, в котором начнется перетаскивание, используйте DoDragDrop метод, чтобы задать перетаскиваемые данные и разрешить перетаскивание разрешенных эффектов. Дополнительные сведения см. в разделах Data и AllowedEffect.
Пока действует операция перетаскивания, можно выполнить обработку QueryContinueDrag события, которое «запрашивает разрешение» системы, чтобы продолжить операцию перетаскивания. При обработке этого метода также является подходящая точка для вызова методов, которые влияют на операцию перетаскивания, например, расширение объекта TreeNode в TreeView элементе управления при наведении курсора мыши на него.
Завершение перетаскивания данных
После начала перетаскивания данных из расположения в форме Windows Forms или элементе управления их требуется куда-то поместить. При попадании курсора в область формы или элемента управления, которые правильно настроены для размещения данных, вид курсора изменится. любая область в Windows форме или элементе управления может быть сделана для приема пропущенных данных путем установки AllowDrop свойства и обработки DragEnter DragDrop событий и.
Завершение операции перетаскивания
Присвойте AllowDrop свойству значение true.
В DragEnter событии для элемента управления, в котором будет выполняться перетаскивание, убедитесь, что перетаскиваемые данные имеют допустимый тип (в данном случае Text ). Затем код задает результат, который будет выполняться при выполнении перетаскивания в значение в DragDropEffects перечислении. Дополнительные сведения см. в разделе Effect.
В DragDrop событии для элемента управления, в котором будет выполняться удаление, используйте GetData метод для получения перетаскиваемых данных. Дополнительные сведения см. в разделе Data.
В приведенном ниже примере элемент TextBox управления — это элемент управления, к которому выполняется перетаскивание (где произойдет удаление). Код задает Text свойство TextBox элемента управления, равное перетаскиваемых данным.
Кроме того, можно работать со KeyState свойством, чтобы, в зависимости от нажатых клавиш во время операции перетаскивания, были выполнены определенные эффекты (например, для копирования перетаскиваемых данных при нажатии клавиши CTRL).