Files
Lattice/Lattice.UI.Docking/Abstractions/IDockSplitterControl.cs
2026-01-27 06:07:15 +03:00

72 lines
2.9 KiB
C#

namespace Lattice.UI.Docking.Abstractions;
/// <summary>
/// Определяет контракт для контрола разделителя между элементами док-системы.
/// Разделитель позволяет пользователю изменять размер смежных элементов.
/// </summary>
public interface IDockSplitterControl : IDockControl
{
/// <summary>
/// Получает или задает ориентацию разделителя.
/// </summary>
/// <value>
/// Ориентация разделителя (горизонтальная или вертикальная).
/// </value>
Core.Docking.Models.SplitDirection Orientation { get; set; }
/// <summary>
/// Получает или задает признак того, что разделитель активен (перетаскивается).
/// </summary>
/// <value>
/// true, если разделитель активен; в противном случае false.
/// </value>
bool IsDragging { get; set; }
/// <summary>
/// Происходит при начале перетаскивания разделителя.
/// </summary>
event EventHandler DragStarted;
/// <summary>
/// Происходит при перетаскивании разделителя.
/// </summary>
event EventHandler<SplitterDraggedEventArgs> DragDelta;
/// <summary>
/// Происходит при завершении перетаскивания разделителя.
/// </summary>
event EventHandler DragCompleted;
}
/// <summary>
/// Предоставляет данные для события перетаскивания разделителя.
/// </summary>
public class SplitterDraggedEventArgs : EventArgs
{
/// <summary>
/// Получает изменение позиции по горизонтали.
/// </summary>
/// <value>
/// Изменение по горизонтали в пикселях.
/// </value>
public double HorizontalChange { get; }
/// <summary>
/// Получает изменение позиции по вертикали.
/// </summary>
/// <value>
/// Изменение по вертикали в пикселях.
/// </value>
public double VerticalChange { get; }
/// <summary>
/// Инициализирует новый экземпляр класса <see cref="SplitterDraggedEventArgs"/>.
/// </summary>
/// <param name="horizontalChange">Изменение по горизонтали.</param>
/// <param name="verticalChange">Изменение по вертикали.</param>
public SplitterDraggedEventArgs(double horizontalChange, double verticalChange)
{
HorizontalChange = horizontalChange;
VerticalChange = verticalChange;
}
}