diff --git a/src/Avalonia.Controls/TabControl.cs b/src/Avalonia.Controls/TabControl.cs index 5b7ea7b9a5..e71a5a656b 100644 --- a/src/Avalonia.Controls/TabControl.cs +++ b/src/Avalonia.Controls/TabControl.cs @@ -73,7 +73,6 @@ namespace Avalonia.Controls { SelectionModeProperty.OverrideDefaultValue(SelectionMode.AlwaysSelected); ItemsPanelProperty.OverrideDefaultValue(DefaultPanel); - TabStripPlacementProperty.Changed.AddClassHandler((x, e) => x.UpdateTabStripPlacement()); AffectsMeasure(TabStripPlacementProperty); SelectedItemProperty.Changed.AddClassHandler((x, e) => x.UpdateSelectedContent()); AutomationProperties.ControlTypeOverrideProperty.OverrideDefaultValue(AutomationControlType.Tab); @@ -154,7 +153,7 @@ namespace Avalonia.Controls protected internal override Control CreateContainerForItemOverride(object? item, int index, object? recycleKey) { - return new TabItem { TabStripPlacement = TabStripPlacement }; + return new TabItem(); } protected internal override bool NeedsContainerOverride(object? item, int index, out object? recycleKey) @@ -166,6 +165,11 @@ namespace Avalonia.Controls { base.PrepareContainerForItemOverride(element, item, index); + if (element is TabItem tabItem) + { + tabItem.TabStripPlacement = TabStripPlacement; + } + if (index == SelectedIndex) { UpdateSelectedContent(element);