private static TabItem CreateATabItem(Region child) { var label = child.ChildrenLabel ?? child.ControlResult.MainView.Meta.Label; var tabHeader = new Label() { Content = label.Translate() }; tabHeader.MouseDoubleClick += (s, e) => { CommandRepository.TryExecuteCommand(typeof(MaxShowViewCommand), child.ControlResult.MainView); }; var tabItem = new TabItem() { Header = tabHeader, Content = child.ControlResult.Control }; AutomationProperties.SetName(tabItem, label); WPFMeta.SetLogicalView(tabItem, child.ControlResult.MainView); ViewAdapter.AdaptView(child.ControlResult.MainView, tabItem); return(tabItem); }
/// <summary> /// 外部可以使用这个辅助方法来实现子页签的摆放 /// </summary> /// <param name="childrenTab"></param> public void ArrangeChildrenByTabControl(TabControl childrenTab) { childrenTab.Style = RafyResources.TabControlHeaderHide; var children = this.Children; if (children.Count > 0) { foreach (var child in children) { var tabItem = CreateATabItem(child); childrenTab.Items.Add(tabItem); } var parentView = children[0].ControlResult.MainView.Parent; ViewAdapter.AdaptView(parentView, childrenTab); } else { childrenTab.RemoveFromParent(false); } }