namespace Lattice.Core.Docking.Abstractions; /// /// Базовый интерфейс для любого элемента, являющегося частью дерева компоновки. /// Определяет общие свойства и методы для всех элементов док-системы. /// /// /// Элементы док-системы образуют древовидную структуру, где каждый элемент может иметь /// родителя и дочерние элементы. Эта иерархия используется для организации пространства /// главного окна и плавающих окон в IDE-подобных приложениях. /// public interface IDockElement { /// /// Получает уникальный идентификатор элемента. /// Используется для поиска элементов, сериализации состояния и отслеживания изменений. /// /// /// Строковый идентификатор, гарантированно уникальный в пределах дерева компоновки. /// Обычно представляет собой GUID в строковом формате. /// string Id { get; } /// /// Получает или задает родительский элемент в иерархии дерева компоновки. /// /// /// Родительский элемент или null, если элемент является корневым. /// Это свойство управляется системой компоновки при добавлении или удалении элементов. /// /// /// Изменение этого свойства вручную может привести к нарушению целостности дерева. /// Для манипуляции структурой дерева следует использовать методы . /// IDockElement? Parent { get; set; } /// /// Получает или задает желаемую ширину элемента. /// /// /// Ширина элемента в пикселях или относительных единицах. /// Может быть выражена как абсолютное значение (в пикселях) или как пропорция /// (например, 0.5 для 50% доступного пространства). /// /// /// Фактическая ширина элемента определяется родительским контейнером с учетом /// минимальных размеров и соотношений разделения. /// double Width { get; set; } /// /// Получает или задает желаемую высоту элемента. /// /// /// Высота элемента в пикселях или относительных единицах. /// Может быть выражена как абсолютное значение (в пикселях) или как пропорция. /// /// /// Фактическая высота элемента определяется родительским контейнером с учетом /// минимальных размеров и соотношений разделения. /// double Height { get; set; } /// /// Получает минимально допустимую ширину элемента. /// /// /// Минимальная ширина элемента в пикселях, при которой элемент сохраняет /// базовую функциональность и читаемость содержимого. /// /// /// Система компоновки не позволит уменьшить элемент ниже этого значения. /// Для групп разделения минимальная ширина вычисляется рекурсивно на основе /// минимальных размеров дочерних элементов. /// double MinWidth { get; } /// /// Получает минимально допустимую высоту элемента. /// /// /// Минимальная высота элемента в пикселях, при которой элемент сохраняет /// базовую функциональность и читаемость содержимого. /// /// /// Система компоновки не позволит уменьшить элемент ниже этого значения. /// Для групп разделения минимальная высота вычисляется рекурсивно на основе /// минимальных размеров дочерних элементов. /// double MinHeight { get; } }