using Lattice.Layout.UI.Docking; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Windows.Foundation; namespace Lattice.Layout.UI.WinUI.Docking; /// /// Контейнер для отображения подсветки зон докинга. /// Обычно используется как Overlay-слой внутри WinUILayoutHost. /// public sealed class DockOverlayHost : Canvas { private DockOverlay? _currentOverlay; public DockOverlayHost() { IsHitTestVisible = false; } /// /// Отображает подсветку для указанной цели докинга. /// public void ShowOverlay(DockTarget target, Rect bounds) { if (_currentOverlay is null) { _currentOverlay = new DockOverlay(); Children.Add(_currentOverlay); } _currentOverlay.Zone = target.Zone; _currentOverlay.Bounds = bounds; _currentOverlay.Visibility = Visibility.Visible; } /// /// Скрывает подсветку зоны докинга. /// public void HideOverlay() { if (_currentOverlay is not null) { _currentOverlay.Visibility = Visibility.Collapsed; } } }