Доработара WinUI реализация.

This commit is contained in:
2026-01-25 05:36:28 +03:00
parent bbb20edb03
commit 6ad7b5dcdb
20 changed files with 1089 additions and 1801 deletions

View File

@@ -7,8 +7,18 @@ using System;
namespace Lattice.UI.DragDrop.WinUI.Controls;
/// <summary>
/// Визуальный элемент для отображения перетаскиваемого объекта.
/// Визуальный элемент, отображаемый во время перетаскивания.
/// </summary>
/// <remarks>
/// <para>
/// Этот элемент отображает репрезентативное представление перетаскиваемых данных
/// и следует за курсором мыши во время операции перетаскивания.
/// </para>
/// <para>
/// Элемент поддерживает настройку прозрачности, смещения и угла поворота,
/// а также анимированное появление и скрытие.
/// </para>
/// </remarks>
public class DragAdorner : Control
{
/// <summary>
@@ -66,8 +76,11 @@ public class DragAdorner : Control
}
/// <summary>
/// Получает или задает данные перетаскивания.
/// Получает или задает данные, которые отображаются в визуальном элементе.
/// </summary>
/// <value>
/// Объект данных для отображения. Обычно это те же данные, которые перетаскиваются.
/// </value>
public object DragData
{
get => GetValue(DragDataProperty);
@@ -75,8 +88,13 @@ public class DragAdorner : Control
}
/// <summary>
/// Получает или задает смещение относительно курсора.
/// Получает или задает смещение элемента относительно позиции курсора.
/// </summary>
/// <value>
/// Смещение по осям X и Y. Используется для позиционирования элемента так,
/// чтобы он не перекрывал курсор. Значение по умолчанию вычисляется автоматически
/// на основе размера элемента.
/// </value>
public Point Offset
{
get => (Point)GetValue(OffsetProperty);
@@ -111,9 +129,13 @@ public class DragAdorner : Control
}
/// <summary>
/// Обновляет позицию элемента относительно курсора.
/// Обновляет позицию элемента в соответствии с позицией курсора.
/// </summary>
/// <param name="cursorPosition">Позиция курсора в экранных координатах.</param>
/// <param name="cursorPosition">Текущая позиция курсора в экранных координатах.</param>
/// <remarks>
/// Метод применяет трансформации для позиционирования элемента с учетом
/// заданного смещения и угла поворота.
/// </remarks>
public void UpdatePosition(Point cursorPosition)
{
var transform = new TranslateTransform