Поделиться через


Перетаскивание шаблона элемента управления

Содержит рекомендации и соглашения по реализации шаблона элемента управления перетаскиванием с помощью IDragProvider, включая сведения о свойствах и методах. Шаблон перетаскивания используется для поддержки перетаскиваемых элементов управления или элементов управления с перетаскиваемыми элементами.

Правила и соглашения реализации

При реализации шаблона элемента управления Перетаскивание используйте следующие рекомендации и соглашения:

  • Интерфейс IDragProvider поддерживает два разных стиля перетаскивания: исходный и целевой стиль и стиль только для источника. Вам нужно выбрать стиль, который лучше всего подходит для ваших сценариев перетаскивания:
    • Исходный/целевой стиль: Каждый возможный целевой объект удаления представлен элементом, реализующим интерфейс IDropTargetProvider . Во время операции перетаскивания события Microsoft модель автоматизации пользовательского интерфейса происходят из перетаскиваемого элемента и от элементов drop-target.
    • Стиль только для исходного кода: Целевые объекты удаления не представлены элементами модель автоматизации пользовательского интерфейса. Во время операции перетаскивания события происходят только из перетаскиваемого элемента.
  • IDragProvider — это интерфейс только для чтения, предназначенный для мониторинга операций перетаскивания. Его нельзя использовать для управления операцией перетаскивания. Вы можете автоматизировать операции перетаскивания, отправляя входные данные с помощью мыши в элемент управления .
  • Требуется свойство IDragProvider::IsGrabbed .
  • Свойства IDragProvider::D ropEffect и IDragProvider::D ropEffects необходимы для реализации только исходного стиля и запрещены для реализации исходного и целевого стилей. В реализации исходного/целевого стиля элементы drop-target можно запрашивать для их эффектов перетаскивания.
  • Свойство IDragProvider::GrabbedItems представляет перетаскивание нескольких элементов. Когда пользователь начинает операцию перетаскивания, необходимо создать новый элемент модель автоматизации пользовательского интерфейса, который будет служить элементом источника события. Этот новый элемент запускает все события, которые исходный элемент будет запускать в исходном или целевом режиме или в режиме только источника, в то время как ни один из фактически перетаскиваемых элементов не вызывает никаких событий. После завершения операции перетаскивания удалите элемент источника события.
  • Элемент должен вызывать события изменения свойств для свойств DropEffect (UIA_DragDropEffectPropertyId) и DropEffects (UIA_DragDropEffectsPropertyId) при их изменении. События изменения свойств для других свойств разрешены, но могут быть выведены из обязательных событий DragStart (UIA_Drag_DragStartEventId), DragCancel (UIA_Drag_DragCancelEventId) и DragComplete (UIA_Drag_DragCompleteEventId).

Обязательные элементы для IDragProvider

Для реализации интерфейса IDragProvider требуются следующие свойства и методы.

Обязательные члены Тип члена Примечания
IsGrabbed Свойство Нет
DropEffect Свойство Требуется для реализации стиля только исходного кода.
DropEffects Свойство Требуется при наличии нескольких возможных эффектов перетаскивания для захватываемого элемента.
GetGrabbedItems Метод Требуется для операции перетаскивания с несколькими элементами.
UIA_Drag_DragStartEventId Событие Нет
UIA_Drag_DragCancelEventId Событие Нет
UIA_Drag_DragCompleteEventId Событие Нет

 

Типы элементов управления и поддерживаемые ими шаблоны элементов управления

Шаблон элемента управления DropTarget

Общие сведения о шаблонах элементов управления модели автоматизации пользовательского интерфейса

Общие сведения о дереве модели автоматизации пользовательского интерфейса

модель автоматизации пользовательского интерфейса поддержка перетаскивания