using Lattice.Core.Docking.Models; using Microsoft.UI.Xaml.Controls; namespace Lattice.UI; /// /// Визуальное представление контейнера вкладок с поддержкой нижнего расположения. /// public class LatticeDockLeaf : Control { public LatticeDockLeaf() { this.DefaultStyleKey = typeof(LatticeDockLeaf); } protected override void OnApplyTemplate() { base.OnApplyTemplate(); UpdateTabPlacement(); } /// /// Настраивает внутреннюю структуру TabView для отображения вкладок снизу. /// private void UpdateTabPlacement() { var tabView = GetTemplateChild("PART_TabView") as TabView; if (tabView == null || DataContext is not DockLeaf leaf) return; // Вместо сложной манипуляции с визуальным деревом, используем встроенные свойства TabView if (leaf.TabPlacement == TabPlacement.Bottom) { // К сожалению, TabView в WinUI не поддерживает TabStripPlacement // Это ограничение платформы, нужно либо использовать другой контрол, // либо реализовать кастомный TabControl с поддержкой нижнего расположения // Временно оставляем как есть с заглушкой System.Diagnostics.Debug.WriteLine("TabPlacement.Bottom is not fully supported in WinUI TabView"); } } }