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;
}
}
}