DragAndDrop core
This commit is contained in:
64
Lattice.Core.DragDrop/Abstractions/IDragSource.cs
Normal file
64
Lattice.Core.DragDrop/Abstractions/IDragSource.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
namespace Lattice.Core.DragDrop.Abstractions;
|
||||
|
||||
/// <summary>
|
||||
/// Определяет контракт для объектов, которые могут быть источником данных
|
||||
/// в операции перетаскивания.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Объекты, реализующие этот интерфейс, могут инициировать операции перетаскивания
|
||||
/// и предоставлять данные для передачи другим элементам через механизм drag-and-drop.
|
||||
/// </remarks>
|
||||
public interface IDragSource
|
||||
{
|
||||
/// <summary>
|
||||
/// Определяет, может ли объект начать операцию перетаскивания.
|
||||
/// </summary>
|
||||
/// <param name="dragInfo">
|
||||
/// Информация о перетаскивании, которая будет заполнена данными, если операция разрешена.
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// true, если объект может начать перетаскивание; в противном случае — false.
|
||||
/// </returns>
|
||||
/// <remarks>
|
||||
/// Этот метод вызывается системой перетаскивания для проверки возможности
|
||||
/// начала операции. Если метод возвращает true, он должен заполнить
|
||||
/// <paramref name="dragInfo"/> необходимыми данными.
|
||||
/// </remarks>
|
||||
bool CanStartDrag(out Models.DragInfo? dragInfo);
|
||||
|
||||
/// <summary>
|
||||
/// Начинает операцию перетаскивания.
|
||||
/// </summary>
|
||||
/// <param name="dragInfo">Информация о перетаскивании.</param>
|
||||
/// <returns>
|
||||
/// true, если операция перетаскивания успешно начата; в противном случае — false.
|
||||
/// </returns>
|
||||
/// <remarks>
|
||||
/// Этот метод вызывается, когда пользователь начинает перетаскивание элемента.
|
||||
/// Реализация должна подготовить данные для перетаскивания и, возможно,
|
||||
/// создать визуальное представление перетаскиваемого объекта.
|
||||
/// </remarks>
|
||||
bool StartDrag(Models.DragInfo dragInfo);
|
||||
|
||||
/// <summary>
|
||||
/// Вызывается при завершении операции перетаскивания.
|
||||
/// </summary>
|
||||
/// <param name="dragInfo">Исходная информация о перетаскивании.</param>
|
||||
/// <param name="effects">Эффекты, которые были применены при сбросе.</param>
|
||||
/// <remarks>
|
||||
/// Этот метод вызывается после завершения операции перетаскивания
|
||||
/// (успешного или неуспешного). Реализация может выполнить очистку
|
||||
/// или обновить состояние на основе результата операции.
|
||||
/// </remarks>
|
||||
void DragCompleted(Models.DragInfo dragInfo, Enums.DragDropEffects effects);
|
||||
|
||||
/// <summary>
|
||||
/// Вызывается при отмене операции перетаскивания.
|
||||
/// </summary>
|
||||
/// <param name="dragInfo">Исходная информация о перетаскивании.</param>
|
||||
/// <remarks>
|
||||
/// Этот метод вызывается, когда операция перетаскивания была отменена
|
||||
/// пользователем (например, нажатием клавиши Escape).
|
||||
/// </remarks>
|
||||
void DragCancelled(Models.DragInfo dragInfo);
|
||||
}
|
||||
Reference in New Issue
Block a user