Files
Progrart/Progrart/Controls/TabSystem/TabHost.axaml.cs
2025-12-14 00:25:51 +11:00

35 lines
801 B
C#

using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Progrart.Controls.TabSystem;
public partial class TabHost : UserControl
{
public TabHost()
{
InitializeComponent();
}
public void AddPage(ITabPage page)
{
TabButton button = new TabButton(page, this);
this.TabContainer.Children.Add(button);
if (page is Control pageControl)
PageContainer.Children.Add(pageControl);
SelectButton(button);
}
public void SelectButton(TabButton button)
{
foreach (var item in TabContainer.Children)
{
if (item is TabButton itemBtn)
itemBtn.SetSelectState(item == button);
}
}
public void RemoveButton(TabButton button)
{
TabContainer.Children.Remove(button);
if (button.page is Control pageControl)
PageContainer.Children.Remove(pageControl);
}
}