chore: add avalonia TabControl demo.

This commit is contained in:
NaBian committed 2025-02-09 21:32:04 +08:00
1 parent bbb2db1696
commit 045ced1c73
12 files changed
+685 -87

No files matched your search

@@ -8,27 +8,28 @@ public class TabItemCapsuleStyleSelector : StyleSelector
{
public override Style SelectStyle(object item, DependencyObject container)
{
if (container is TabItem tabItem && VisualHelper.GetParent<TabControl>(tabItem) is { } tabControl)
if (container is not TabItem tabItem || VisualHelper.GetParent<TabControl>(tabItem) is not { } tabControl)
{
var count = tabControl.Items.Count;
if (count == 1)
{
return ResourceHelper.GetResourceInternal<Style>(ResourceToken.TabItemCapsuleSingle);
}
var index = tabControl.ItemContainerGenerator.IndexFromContainer(tabItem);
return index == 0
? ResourceHelper.GetResourceInternal<Style>(
tabControl.TabStripPlacement == Dock.Top || tabControl.TabStripPlacement == Dock.Bottom
? ResourceToken.TabItemCapsuleHorizontalFirst
: ResourceToken.TabItemCapsuleVerticalFirst)
: ResourceHelper.GetResourceInternal<Style>(index == count - 1
? tabControl.TabStripPlacement == Dock.Top || tabControl.TabStripPlacement == Dock.Bottom
? ResourceToken.TabItemCapsuleHorizontalLast
: ResourceToken.TabItemCapsuleVerticalLast
: ResourceToken.TabItemCapsuleDefault);
return null;
}
return null;
var count = tabControl.Items.Count;
if (count == 1)
{
return ResourceHelper.GetResourceInternal<Style>(ResourceToken.TabItemCapsuleSingle);
}
var index = tabControl.ItemContainerGenerator.IndexFromContainer(tabItem);
return index == 0
? ResourceHelper.GetResourceInternal<Style>(
tabControl.TabStripPlacement is Dock.Top or Dock.Bottom
? ResourceToken.TabItemCapsuleHorizontalFirst
: ResourceToken.TabItemCapsuleVerticalFirst)
: ResourceHelper.GetResourceInternal<Style>(index == count - 1
? tabControl.TabStripPlacement is Dock.Top or Dock.Bottom
? ResourceToken.TabItemCapsuleHorizontalLast
: ResourceToken.TabItemCapsuleVerticalLast
: ResourceToken.TabItemCapsuleDefault);
}
}