diff --git a/samples/ControlCatalog/MainView.xaml b/samples/ControlCatalog/MainView.xaml index 0f7f2e80a8..2ddb5887e5 100644 --- a/samples/ControlCatalog/MainView.xaml +++ b/samples/ControlCatalog/MainView.xaml @@ -32,10 +32,10 @@ + - diff --git a/samples/ControlCatalog/SideBar.xaml b/samples/ControlCatalog/SideBar.xaml index f97a3064e7..625b344b8c 100644 --- a/samples/ControlCatalog/SideBar.xaml +++ b/samples/ControlCatalog/SideBar.xaml @@ -26,7 +26,7 @@ (SelectionMode.AlwaysSelected); ItemsPanelProperty.OverrideDefaultValue(DefaultPanel); AffectsMeasure(TabStripPlacementProperty); + ContentControlMixin.Attach( + SelectedContentProperty, + x => x.LogicalChildren, + "PART_SelectedContentHost"); } /// @@ -142,7 +147,7 @@ namespace Avalonia.Controls ItemsPresenterPart = e.NameScope.Get("PART_ItemsPresenter"); - ContentPart = e.NameScope.Get("PART_Content"); + ContentPart = e.NameScope.Get("PART_SelectedContentHost"); } /// diff --git a/src/Avalonia.Themes.Default/TabControl.xaml b/src/Avalonia.Themes.Default/TabControl.xaml index a492698feb..60c70ebfda 100644 --- a/src/Avalonia.Themes.Default/TabControl.xaml +++ b/src/Avalonia.Themes.Default/TabControl.xaml @@ -18,7 +18,7 @@ MemberSelector="{TemplateBinding MemberSelector}" > (x => + new TextBlock { Tag = "bar", Text = x }), + Items = new[] { "Foo" }, + }; + + ApplyTemplate(target); + target.ContentPart.UpdateChild(); + + var content = Assert.IsType(target.ContentPart.Child); + Assert.Equal("bar", content.Tag); + Assert.Same(target, content.GetLogicalParent()); + Assert.Single(target.GetLogicalChildren(), content); + } + private IControlTemplate TabControlTemplate() { return new FuncControlTemplate(parent => - new StackPanel { - Children = { - new ItemsPresenter - { - Name = "PART_ItemsPresenter", - [!TabStrip.ItemsProperty] = parent[!TabControl.ItemsProperty], - [!TabStrip.ItemTemplateProperty] = parent[!TabControl.ItemTemplateProperty], - }, - new ContentPresenter - { - Name = "PART_Content", - [!ContentPresenter.ContentProperty] = parent[!TabControl.SelectedContentProperty], - [!ContentPresenter.ContentTemplateProperty] = parent[!TabControl.SelectedContentTemplateProperty], - } - } + Children = + { + new ItemsPresenter + { + Name = "PART_ItemsPresenter", + [!TabStrip.ItemsProperty] = parent[!TabControl.ItemsProperty], + [!TabStrip.ItemTemplateProperty] = parent[!TabControl.ItemTemplateProperty], + }, + new ContentPresenter + { + Name = "PART_SelectedContentHost", + [!ContentPresenter.ContentProperty] = parent[!TabControl.SelectedContentProperty], + [!ContentPresenter.ContentTemplateProperty] = parent[!TabControl.SelectedContentTemplateProperty], + } + } }); }