private static void ReorderAllPreviews() { LayoutDocumentPaneGroup paneGroup = (LayoutDocumentPaneGroup)((LayoutPanel)dockManager.Layout.Children.ElementAt(0)).Children[0]; foreach (LayoutDocumentPane a in paneGroup.Children) { for (int i = a.Children.Count - 2; i >= 0; i--) { var frame = a.Children[i].Content as Frame; if (frame == null) { break; } var prev = TaskbarManager.Instance.TabbedThumbnail.GetThumbnailPreview(frame); var nextprev = TaskbarManager.Instance.TabbedThumbnail.GetThumbnailPreview( (UIElement)a.Children[i + 1].Content); if (prev == null || nextprev == null) { break; } TabbedThumbnailManager.SetTabOrder(prev, TaskbarManager.Instance.TabbedThumbnail.GetThumbnailPreview( (UIElement)a.Children[i + 1].Content)); } } SetActivePreview((UIElement)dockManager.ActiveContent); }
// Find LayoutDocumentPane where IS3View can be add. public LayoutDocumentPane FindViewHolder() { if (_prj == null) { return(null); } EngineeringMap baseMap = _prj.projDef.EngineeringMaps.FirstOrDefault(); if (baseMap == null) { return(null); } LayoutContent layoutContent = FindLayoutContentByID(baseMap.MapID); if (layoutContent == null) { return(null); } LayoutDocumentPane docPane = layoutContent.Parent as LayoutDocumentPane; if (docPane == null) { LayoutRoot root = layoutContent.Root as LayoutRoot; LayoutPanel panel = root.Children.First() as LayoutPanel; LayoutDocumentPaneGroup docPaneGroup = panel.Children.ElementAt(1) as LayoutDocumentPaneGroup; docPane = docPaneGroup.Children.First() as LayoutDocumentPane; } return(docPane); }
private void AddLayoutDocument(LayoutDocument layoutDocument) { LayoutDocumentPaneGroup.Descendents() .OfType <LayoutDocumentPane>() .First() .Children.Add(layoutDocument); }
private static void thumbnail_TabbedThumbnailClosed(object sender, TabbedThumbnailClosedEventArgs e) { //var layoutDoc = LayoutPane.Children.Where(x => x.Content == e.WindowsControl).SingleOrDefault(); LayoutDocumentPaneGroup paneGroup = (LayoutDocumentPaneGroup)((LayoutPanel)dockManager.Layout.Children.ElementAt(0)).Children[0]; LayoutContent layoutDoc = null; foreach (LayoutDocumentPane a in paneGroup.Children) { layoutDoc = a.Children.Where(x => x.Content == e.WindowsControl).SingleOrDefault(); if (layoutDoc != null) { break; } } if (layoutDoc == null) { return; } var controlView = layoutDoc.Content as IControlView; if (controlView == null) { controlView = ((Frame)layoutDoc.Content).Content as IControlView; } if (controlView != null && controlView.IsModified) { BAMessageBox.ShowInfo(Strings.Message_MainWindow_ShowPage_ModifiedView); } layoutDoc.ContentId = "CodeRemoval"; layoutDoc.Parent.RemoveChild(layoutDoc); SetActivePreview((UIElement)dockManager.ActiveContent); }
private bool FindParentLayoutDocumentPane(ILayoutDocumentPane documentPane, out LayoutDocumentPaneGroup containerPaneGroup, out LayoutPanel containerPanel) { containerPaneGroup = null; containerPanel = null; if (documentPane.Parent is LayoutPanel) { containerPaneGroup = null; containerPanel = documentPane.Parent as LayoutPanel; return(true); } if (!(documentPane.Parent is LayoutDocumentPaneGroup)) { return(false); } LayoutDocumentPaneGroup parent = documentPane.Parent as LayoutDocumentPaneGroup; do { if (parent.Parent is LayoutPanel) { break; } parent = parent.Parent as LayoutDocumentPaneGroup; }while (parent != null); if (parent == null) { return(false); } containerPaneGroup = parent; containerPanel = parent.Parent as LayoutPanel; return(true); }
private void ExecuteNewVerticalTabGroupCommand(object parameter) { var layoutElement = LayoutElement; var parentDocumentGroup = layoutElement.FindParent <LayoutDocumentPaneGroup>(); var parentDocumentPane = layoutElement.Parent as LayoutDocumentPane; if (parentDocumentGroup == null) { if (parentDocumentPane != null) { var grandParent = parentDocumentPane.Parent; parentDocumentGroup = new LayoutDocumentPaneGroup() { Orientation = Orientation.Horizontal }; grandParent.ReplaceChild(parentDocumentPane, parentDocumentGroup); } parentDocumentGroup?.Children.Add(parentDocumentPane); } if (parentDocumentGroup != null) { parentDocumentGroup.Orientation = Orientation.Horizontal; int indexOfParentPane = parentDocumentGroup.IndexOfChild(parentDocumentPane); parentDocumentGroup.InsertChildAt(indexOfParentPane + 1, new LayoutDocumentPane(layoutElement)); } layoutElement.IsActive = true; layoutElement.Root.CollectGarbage(); }
public static void DockHorizontal(LayoutContent layoutContent, ILayoutElement paneRelativeTo, GridLength dockHeight, bool dockBefore = false) { if (paneRelativeTo is ILayoutDocumentPane parentDocumentPane) { var parentDocumentGroup = paneRelativeTo.FindParent <LayoutDocumentPaneGroup>(); if (parentDocumentGroup == null) { var grandParent = parentDocumentPane.Parent as ILayoutContainer; parentDocumentGroup = new LayoutDocumentPaneGroup() { Orientation = System.Windows.Controls.Orientation.Vertical }; grandParent.ReplaceChild(paneRelativeTo, parentDocumentGroup); parentDocumentGroup.Children.Add(parentDocumentPane); } parentDocumentGroup.Orientation = System.Windows.Controls.Orientation.Vertical; int indexOfParentPane = parentDocumentGroup.IndexOfChild(parentDocumentPane); var layoutDocumentPane = new LayoutDocumentPane(layoutContent) { DockHeight = dockHeight }; parentDocumentGroup.InsertChildAt(dockBefore ? indexOfParentPane : indexOfParentPane + 1, layoutDocumentPane); layoutContent.IsActive = true; layoutContent.Root.CollectGarbage(); Application.Current.MainWindow.Dispatcher.Invoke(() => { layoutDocumentPane.DockHeight = dockHeight; }, System.Windows.Threading.DispatcherPriority.Loaded); } }
internal override LayoutElement Convert(UiManager uiManager) { var lr = new LayoutDocumentPaneGroup { DockWidth = new GridLength(Width.Value, Width.Unit), DockHeight = new GridLength(Height.Value, Height.Unit), Orientation = Orientation }; foreach (var x in Children) { if (x is LayoutInfo) { lr.Children.Add((ILayoutDocumentPane)((LayoutInfo)x).Convert(uiManager)); } else if (x is PaneInfo) { lr.Children.Add((ILayoutDocumentPane)((PaneInfo)x).Convert(uiManager)); } else { throw new Exception(); } } return(lr); }
public void AfterInsertDocument(LayoutRoot layout, LayoutDocument anchorableShown) { if (anchorableShown.Content is BrowserViewModel) { var parentDocumentGroup = anchorableShown.FindParent <LayoutDocumentPaneGroup>(); var parentDocumentPane = anchorableShown.Parent as LayoutDocumentPane; if (parentDocumentGroup == null) { var grandParent = parentDocumentPane.Parent; parentDocumentGroup = new LayoutDocumentPaneGroup { Orientation = Orientation.Horizontal }; grandParent.ReplaceChild(parentDocumentPane, parentDocumentGroup); parentDocumentGroup.Children.Add(parentDocumentPane); } parentDocumentGroup.Orientation = Orientation.Horizontal; var indexOfParentPane = parentDocumentGroup.IndexOfChild(parentDocumentPane); parentDocumentGroup.InsertChildAt(indexOfParentPane + 1, new LayoutDocumentPane(anchorableShown)); anchorableShown.IsActive = true; //anchorableShown.Root.CollectGarbage(); } }
/// <summary> /// Find LayoutDocumentPane with <paramref name="frame"/> inside /// </summary> private static LayoutDocumentPane FindLayoutDocumentPane(Frame frame) { LayoutDocumentPaneGroup paneGroup = (LayoutDocumentPaneGroup)((LayoutPanel)dockManager.Layout.Children.ElementAt(0)).Children[0]; return((from LayoutDocumentPane a in paneGroup.Children let layDoc = a.Children.Where(x => x.Content == frame).SingleOrDefault() where layDoc != null select a).FirstOrDefault()); }
private static void thumbnail_TabbedThumbnailActivated(object sender, TabbedThumbnailEventArgs e) { Frame content = e.WindowsControl as Frame; if (content != null) { //var currentIndex = LayoutPane.Children.IndexOf(); int currentIndex; LayoutDocumentPaneGroup paneGroup = (LayoutDocumentPaneGroup)((LayoutPanel)dockManager.Layout.Children.ElementAt(0)).Children[0]; foreach (LayoutDocumentPane a in paneGroup.Children) { var layDoc = a.Children.Where(x => x.Content == content).SingleOrDefault(); if (layDoc != null) { currentIndex = a.Children.IndexOf(layDoc); a.SelectedContentIndex = currentIndex; dockManager.ActiveContent = content; if (ParentWindow.WindowState == WindowState.Minimized) { ParentWindow.WindowState = WindowState.Maximized; } if (!ParentWindow.IsActive) { ParentWindow.Activate(); } break; } } } }
protected override void OnExecute(object parameter) { var layoutElement = DockingManager.Instance?.Layout.ActiveContent; if (layoutElement == null) { return; } var parentDocumentGroup = layoutElement.FindParent <LayoutDocumentPaneGroup>(); var parentDocumentPane = layoutElement.Parent as LayoutDocumentPane; if (parentDocumentGroup == null) { if (parentDocumentPane != null) { var grandParent = parentDocumentPane.Parent; parentDocumentGroup = new LayoutDocumentPaneGroup { Orientation = Orientation.Horizontal }; grandParent.ReplaceChild(parentDocumentPane, parentDocumentGroup); } parentDocumentGroup?.Children.Add(parentDocumentPane); } if (parentDocumentGroup != null) { parentDocumentGroup.Orientation = Orientation.Horizontal; var indexOfParentPane = parentDocumentGroup.IndexOfChild(parentDocumentPane); parentDocumentGroup.InsertChildAt(indexOfParentPane + 1, new LayoutDocumentPane(layoutElement)); } layoutElement.IsActive = true; layoutElement.Root.CollectGarbage(); }
private void __restore_documents_docking_layout(IReadOnlyList <ToolLayout> dockingLayouts, LayoutDocumentPaneGroup root) { foreach (var layout in dockingLayouts) { if (layout.Type == TOOL_LAYOUT_TYPE_T.PANEL) { var layoutpanel = layout as LayoutPanel <LayoutDocument>; LayoutDocumentPane panel = __restore_documents_docking_layout(layoutpanel.Documents); panel.DockHeight = new GridLength(layoutpanel.Height, GridUnitType.Star); panel.DockWidth = new GridLength(layoutpanel.Width, GridUnitType.Star); root.Children.Add(panel); } else { var layoutgroup = layout as LayoutGroup; var group = new LayoutDocumentPaneGroup() { Orientation = layoutgroup.Orientation == TOOL_LAYOUT_ORIENTATION_T.HORIZONTAL ? Orientation.Horizontal : Orientation.Vertical }; group.DockHeight = new GridLength(layoutgroup.Height, GridUnitType.Star); group.DockWidth = new GridLength(layoutgroup.Width, GridUnitType.Star); __restore_documents_docking_layout(layoutgroup.SubLayout, group); root.Children.Add(group); } } }
private void AddDocument(LayoutDocumentPaneGroup pane, LayoutDocument content, int childIndex) { var panel = (pane.ChildrenCount > childIndex) ? pane.Children[childIndex] as LayoutDocumentPane : AddLayoutItem(pane, () => new LayoutDocumentPane()) as LayoutDocumentPane; panel.Children.Add(content); }
/// <summary> /// 初始化主要内容的容器控件 /// </summary> private void initMianContentControl() { mianContentControl = new DockingManager(); mianContentControl.BorderBrush = Utility.Windows.ResourceHelper.FindResource(@"AccentColorBrush") as System.Windows.Media.Brush; mianContentControl.Theme = new Xceed.Wpf.AvalonDock.Themes.MetroTheme(); mianContentControl.DocumentClosed += MianContentControl_DocumentClosed; var v = Utility.Windows.ResourceHelper.FindResource(@"DockDocumentHeaderTemplate"); DataTemplate dataTemplate = v as DataTemplate; mianContentControl.DocumentHeaderTemplate = dataTemplate; LayoutRoot layoutRoot = new LayoutRoot(); mianContentControl.Layout = layoutRoot; LayoutAnchorSide layoutAnchorSide = new LayoutAnchorSide(); layoutRoot.LeftSide = layoutAnchorSide; LayoutAnchorGroup layoutAnchorGroup = new LayoutAnchorGroup(); layoutAnchorSide.Children.Add(layoutAnchorGroup); LayoutAnchorable layoutAnchorable = new LayoutAnchorable(); layoutAnchorable.Title = Utility.Windows.ResourceHelper.FindResource(@"NavigationMenu").ToString(); layoutAnchorable.IconSource = Utility.Windows.BitmapImageHelper.GetBitmapImage("Images/Folder_32.png", 16, 16); layoutAnchorable.CanAutoHide = true; layoutAnchorable.CanClose = false; layoutAnchorable.CanFloat = false; layoutAnchorable.CanHide = false; layoutAnchorable.IsMaximized = false; layoutAnchorable.AutoHideMinWidth = (double)Utility.Windows.ResourceHelper.FindResource(@"LeftTreeAutoHideMinWidth"); layoutAnchorGroup.Children.Add(layoutAnchorable); layoutAnchorable.ToggleAutoHide(); //TreeView treeView = new TreeView(); //layoutAnchorable.Content = new ContentControl ()(Prism.Regions.RegionManager.SetRegionName (""); //Prism.Regions.RegionManager.GetRegionName(layoutAnchorable, "TreeMenuModule"); //treeView.ItemsSource = this.MenuItems; //layoutAnchorable.Content = //Style style = new Style(); ; //style.TargetType = typeof(TreeViewItem); //style.BasedOn = Utility.Windows.ResourceHelper.FindResource(@"MetroTreeViewItem") as Style; //treeView.ItemContainerStyle = style; var treeMenuContent = new ContentControl(); layoutAnchorable.Content = treeMenuContent; Prism.Regions.RegionManager.SetRegionName(treeMenuContent, "TreeMenuRegion"); //Prism.Regions.RegionManager.SetRegionName(layoutAnchorable, "TreeMenuModule"); //var regionManager = containerProvider.Resolve<IRegionManager>(); //regionManager.RegisterViewWithRegion("ShellContentRegion", typeof(ShellView)); LayoutDocumentPaneGroup layoutDocumentPaneGroup = new LayoutDocumentPaneGroup(); layoutRoot.RootPanel.Orientation = Orientation.Horizontal; layoutRoot.RootPanel.Children[1] = layoutDocumentPaneGroup; layoutDocumentPaneGroup.InsertChildAt(0, layoutDocumentPane); }
private void ExecuteMoveToPreviousTabGroupCommand(object parameter) { LayoutContent layoutElement = this.LayoutElement; LayoutDocumentPaneGroup layoutDocumentPaneGroup = layoutElement.FindParent <LayoutDocumentPaneGroup>(); int num = layoutDocumentPaneGroup.IndexOfChild(layoutElement.Parent as LayoutDocumentPane); (layoutDocumentPaneGroup.Children[num - 1] as LayoutDocumentPane).InsertChildAt(0, layoutElement); layoutElement.IsActive = true; layoutElement.Root.CollectGarbage(); }
private static void RefreshAllPreviews() { LayoutDocumentPaneGroup paneGroup = (LayoutDocumentPaneGroup)((LayoutPanel)dockManager.Layout.Children.ElementAt(0)).Children[0]; foreach (LayoutDocumentPane a in paneGroup.Children) { foreach (var frame in a.Children.Select(tab => tab.Content)) { RefreshPreview((Frame)frame); } } }
/// <summary> /// 初始化主要内容的容器控件 /// </summary> private void initMianContentControl() { mianContentControl = new DockingManager(); mianContentControl.BorderBrush = Utility.Windows.ResourceHelper.FindResource(@"AccentColorBrush") as System.Windows.Media.Brush; mianContentControl.Theme = new Xceed.Wpf.AvalonDock.Themes.MetroTheme(); mianContentControl.DocumentClosed += MianContentControl_DocumentClosed; var v = Utility.Windows.ResourceHelper.FindResource(@"DockDocumentHeaderTemplate"); DataTemplate dataTemplate = v as DataTemplate; mianContentControl.DocumentHeaderTemplate = dataTemplate; mianContentControl.Background = Utility.Windows.ResourceHelper.FindResource(@"DesktopBackground") as System.Windows.Media.ImageBrush; LayoutRoot layoutRoot = new LayoutRoot(); mianContentControl.Layout = layoutRoot; LayoutAnchorSide layoutAnchorSide = new LayoutAnchorSide(); layoutRoot.LeftSide = layoutAnchorSide; LayoutAnchorGroup layoutAnchorGroup = new LayoutAnchorGroup(); layoutAnchorSide.Children.Add(layoutAnchorGroup); LayoutAnchorable layoutAnchorable = new LayoutAnchorable(); layoutAnchorable.Title = Utility.Windows.ResourceHelper.FindResource(@"NavigationMenu").ToString(); layoutAnchorable.IconSource = Utility.Windows.ResourceHelper.FindResource(@"Folder_32x32") as System.Windows.Media.ImageSource; layoutAnchorable.CanAutoHide = true; layoutAnchorable.CanClose = false; layoutAnchorable.CanFloat = false; layoutAnchorable.CanHide = false; layoutAnchorable.IsMaximized = false; layoutAnchorable.AutoHideMinWidth = (double)Utility.Windows.ResourceHelper.FindResource(@"LeftTreeAutoHideMinWidth"); layoutAnchorGroup.Children.Add(layoutAnchorable); layoutAnchorable.ToggleAutoHide(); TreeView treeView = new TreeView(); layoutAnchorable.Content = treeView; treeView.ItemsSource = this.MenuItems; Style style = new Style();; style.TargetType = typeof(TreeViewItem); style.BasedOn = Utility.Windows.ResourceHelper.FindResource(@"MetroTreeViewItem") as Style; treeView.ItemContainerStyle = style; LayoutDocumentPaneGroup layoutDocumentPaneGroup = new LayoutDocumentPaneGroup(); layoutRoot.RootPanel.Orientation = Orientation.Horizontal; layoutRoot.RootPanel.Children[1] = layoutDocumentPaneGroup; layoutDocumentPaneGroup.InsertChildAt(0, layoutDocumentPane); }
private void GetDocumentGroups(LayoutPanel amlPanel, out LayoutDocumentPaneGroup topPanel, out LayoutDocumentPaneGroup bottomPanel) { topPanel = (amlPanel.ChildrenCount > 0) ? amlPanel.Children[0] as LayoutDocumentPaneGroup : null; topPanel ??= AddLayoutItem(amlPanel, () => new LayoutDocumentPaneGroup()) as LayoutDocumentPaneGroup; bottomPanel = (amlPanel.ChildrenCount > 1) ? amlPanel.Children[1] as LayoutDocumentPaneGroup : null; bottomPanel ??= AddLayoutItem(amlPanel, () => new LayoutDocumentPaneGroup()) as LayoutDocumentPaneGroup; }
private LayoutDocumentPaneGroup GetFillLayoutDocumentPaneGroup() { LayoutDocumentPaneGroup layoutDocumentPaneGroup = new LayoutDocumentPaneGroup(); LayoutDocument layoutDocument = new LayoutDocument() { Title = "地图", Content = AppManager.Map, CanClose = false }; LayoutDocumentPane layoutDocumentPane = new LayoutDocumentPane(); layoutDocumentPane.Children.Add(layoutDocument); layoutDocumentPaneGroup.Children.Add(layoutDocumentPane); return(layoutDocumentPaneGroup); }
private bool CanExecuteMoveToPreviousTabGroupCommand(object parameter) { if (this.LayoutElement == null) { return(false); } LayoutDocumentPaneGroup layoutDocumentPaneGroup = this.LayoutElement.FindParent <LayoutDocumentPaneGroup>(); LayoutDocumentPane parent = this.LayoutElement.Parent as LayoutDocumentPane; if (layoutDocumentPaneGroup == null || parent == null || layoutDocumentPaneGroup.ChildrenCount <= 1 || layoutDocumentPaneGroup.IndexOfChild(parent) <= 0) { return(false); } return(layoutDocumentPaneGroup.Children[layoutDocumentPaneGroup.IndexOfChild(parent) - 1] is LayoutDocumentPane); }
private bool CanExecuteNewVerticalTabGroupCommand(object parameter) { if (this.LayoutElement == null) { return(false); } LayoutDocumentPaneGroup layoutDocumentPaneGroup = this.LayoutElement.FindParent <LayoutDocumentPaneGroup>(); LayoutDocumentPane parent = this.LayoutElement.Parent as LayoutDocumentPane; if (layoutDocumentPaneGroup != null && layoutDocumentPaneGroup.ChildrenCount != 1 && !layoutDocumentPaneGroup.Root.Manager.AllowMixedOrientation && layoutDocumentPaneGroup.Orientation != Orientation.Horizontal || parent == null) { return(false); } return(parent.ChildrenCount > 1); }
protected override void Drop(LayoutDocumentFloatingWindow floatingWindow) { ILayoutDocumentPane targetModel = _targetPane.Model as ILayoutDocumentPane; switch (Type) { case DropTargetType.DocumentPaneDockBottom: { var newLayoutDocumentPane = new LayoutDocumentPane(floatingWindow.RootDocument); if (targetModel != null) { if (!(targetModel.Parent is LayoutDocumentPaneGroup parentModel)) { var parentContainer = targetModel.Parent; var newParentModel = new LayoutDocumentPaneGroup { Orientation = System.Windows.Controls.Orientation.Vertical }; parentContainer.ReplaceChild(targetModel, newParentModel); newParentModel.Children.Add(targetModel as LayoutDocumentPane); newParentModel.Children.Add(newLayoutDocumentPane); } else { var manager = parentModel.Root.Manager; if (!manager.AllowMixedOrientation || parentModel.Orientation == System.Windows.Controls.Orientation.Vertical) { parentModel.Orientation = System.Windows.Controls.Orientation.Vertical; int targetPaneIndex = parentModel.IndexOfChild(targetModel); parentModel.Children.Insert(targetPaneIndex + 1, newLayoutDocumentPane); } else { LayoutDocumentPaneGroup newChildGroup = new LayoutDocumentPaneGroup { Orientation = System.Windows.Controls.Orientation.Vertical }; parentModel.ReplaceChild(targetModel, newChildGroup); newChildGroup.Children.Add(targetModel); newChildGroup.Children.Add(newLayoutDocumentPane); } } } } break;
private ToolLayout __save_documents_docking_layout(LayoutDocumentPaneGroup root) { LayoutGroup r = new LayoutGroup(); r.SubLayout = new List <ToolLayout>(); r.Orientation = root.Orientation == Orientation.Horizontal ? TOOL_LAYOUT_ORIENTATION_T.HORIZONTAL : TOOL_LAYOUT_ORIENTATION_T.VERTICAL; r.Height = root.DockHeight.Value; r.Width = root.DockWidth.Value; foreach (var sub in root.Children) { if (sub is LayoutDocumentPaneGroup) { r.SubLayout.Add(__save_documents_docking_layout(sub as LayoutDocumentPaneGroup)); } else { r.SubLayout.Add(__save_documents_docking_layout(sub as LayoutDocumentPane)); } } return(r); }
public LayoutDocumentPane FindFirstLayoutDocumentPane(LayoutDocumentPaneGroup layoutDocumentPaneGroup) { foreach (ILayoutDocumentPane layoutDocumentPaneInterface in layoutDocumentPaneGroup.Children) { if (layoutDocumentPaneInterface is LayoutDocumentPane) { return(layoutDocumentPaneInterface as LayoutDocumentPane); } if (layoutDocumentPaneInterface is LayoutDocumentPaneGroup) { var layoutDocumentPane = FindFirstLayoutDocumentPane(layoutDocumentPaneInterface as LayoutDocumentPaneGroup); if (layoutDocumentPane != null) { return(layoutDocumentPane); } } } return(null); }
private bool FindParentLayoutDocumentPane(ILayoutDocumentPane documentPane, out LayoutDocumentPaneGroup containerPaneGroup, out LayoutPanel containerPanel) { containerPaneGroup = null; containerPanel = null; var panel = documentPane.Parent as LayoutPanel; if (panel != null) { containerPanel = panel; return(true); } if (!(documentPane.Parent is LayoutDocumentPaneGroup)) { return(false); } var currentDocumentPaneGroup = (LayoutDocumentPaneGroup)documentPane.Parent; while (!(currentDocumentPaneGroup.Parent is LayoutPanel)) { currentDocumentPaneGroup = currentDocumentPaneGroup.Parent as LayoutDocumentPaneGroup; if (currentDocumentPaneGroup == null) { break; } } if (currentDocumentPaneGroup == null) { return(false); } containerPaneGroup = currentDocumentPaneGroup; containerPanel = (LayoutPanel)currentDocumentPaneGroup.Parent; return(true); }
private bool __docking_layout_comparison(LayoutDocumentPaneGroup root, ToolLayout layout) { if (layout.Type == TOOL_LAYOUT_TYPE_T.GROUP) { var layoutgroup = layout as LayoutGroup; var orientation = layoutgroup.Orientation == TOOL_LAYOUT_ORIENTATION_T.HORIZONTAL ? Orientation.Horizontal : Orientation.Vertical; if (orientation == root.Orientation && root.Children.Count == layoutgroup.SubLayout.Count && root.DockHeight.Value == layoutgroup.Height && root.DockWidth.Value == layoutgroup.Width) { for (int i = 0; i < layoutgroup.SubLayout.Count; ++i) { if (root.Children[i] is LayoutDocumentPaneGroup && layoutgroup.SubLayout[i].Type == TOOL_LAYOUT_TYPE_T.GROUP) { if (__docking_layout_comparison(root.Children[i] as LayoutDocumentPaneGroup, layoutgroup.SubLayout[i]) == false) { return(false); } } if (root.Children[i] is LayoutDocumentPane && layoutgroup.SubLayout[i].Type == TOOL_LAYOUT_TYPE_T.PANEL) { if (__docking_layout_comparison(root.Children[i] as LayoutDocumentPane, layoutgroup.SubLayout[i] as LayoutPanel <LayoutDocument>) == false) { return(false); } } } return(true); } else { return(false); } } else { return(false); } }
private bool FindParentLayoutDocumentPane(ILayoutDocumentPane documentPane, out LayoutDocumentPaneGroup containerPaneGroup, out LayoutPanel containerPanel) { containerPaneGroup = null; containerPanel = null; if (documentPane.Parent is LayoutPanel) { containerPaneGroup = null; containerPanel = documentPane.Parent as LayoutPanel; return(true); } if (documentPane.Parent is LayoutDocumentPaneGroup) { var currentDocumentPaneGroup = documentPane.Parent as LayoutDocumentPaneGroup; while (!(currentDocumentPaneGroup.Parent is LayoutPanel)) { currentDocumentPaneGroup = currentDocumentPaneGroup.Parent as LayoutDocumentPaneGroup; if (currentDocumentPaneGroup is null) { break; } } if (currentDocumentPaneGroup is null) { return(false); } containerPaneGroup = currentDocumentPaneGroup; containerPanel = currentDocumentPaneGroup.Parent as LayoutPanel; return(true); } return(false); }
private void ExecuteNewVerticalTabGroupCommand(object parameter) { LayoutContent layoutElement = this.LayoutElement; LayoutDocumentPaneGroup layoutDocumentPaneGroup = layoutElement.FindParent <LayoutDocumentPaneGroup>(); LayoutDocumentPane parent = layoutElement.Parent as LayoutDocumentPane; if (layoutDocumentPaneGroup == null) { ILayoutContainer layoutContainer = parent.Parent; layoutDocumentPaneGroup = new LayoutDocumentPaneGroup() { Orientation = Orientation.Horizontal }; layoutContainer.ReplaceChild(parent, layoutDocumentPaneGroup); layoutDocumentPaneGroup.Children.Add(parent); } layoutDocumentPaneGroup.Orientation = Orientation.Horizontal; int num = layoutDocumentPaneGroup.IndexOfChild(parent); layoutDocumentPaneGroup.InsertChildAt(num + 1, new LayoutDocumentPane(layoutElement)); layoutElement.IsActive = true; layoutElement.Root.CollectGarbage(); }
private void ExecuteNewVerticalTabGroupCommand(object parameter) { var layoutElement = LayoutElement; var parentDocumentGroup = layoutElement.FindParent <LayoutDocumentPaneGroup>(); var parentDocumentPane = layoutElement.Parent as LayoutDocumentPane; if (parentDocumentGroup == null) { var grandParent = parentDocumentPane.Parent as ILayoutContainer; parentDocumentGroup = new LayoutDocumentPaneGroup() { Orientation = System.Windows.Controls.Orientation.Horizontal }; grandParent.ReplaceChild(parentDocumentPane, parentDocumentGroup); parentDocumentGroup.Children.Add(parentDocumentPane); } parentDocumentGroup.Orientation = System.Windows.Controls.Orientation.Horizontal; int indexOfParentPane = parentDocumentGroup.IndexOfChild(parentDocumentPane); parentDocumentGroup.InsertChildAt(indexOfParentPane + 1, new LayoutDocumentPane(layoutElement)); layoutElement.IsActive = true; layoutElement.Root.CollectGarbage(); layoutElement.Root.Manager.OnLayoutConfigurationChanged(); }
private void ExecuteNewVerticalTabGroupCommand(object parameter) { var layoutElement = LayoutElement; var parentDocumentGroup = layoutElement.FindParent<LayoutDocumentPaneGroup>(); var parentDocumentPane = layoutElement.Parent as LayoutDocumentPane; if (parentDocumentGroup == null) { var grandParent = parentDocumentPane.Parent as ILayoutContainer; parentDocumentGroup = new LayoutDocumentPaneGroup() { Orientation = System.Windows.Controls.Orientation.Horizontal }; grandParent.ReplaceChild(parentDocumentPane, parentDocumentGroup); parentDocumentGroup.Children.Add(parentDocumentPane); } parentDocumentGroup.Orientation = System.Windows.Controls.Orientation.Horizontal; int indexOfParentPane = parentDocumentGroup.IndexOfChild(parentDocumentPane); parentDocumentGroup.InsertChildAt(indexOfParentPane + 1, new LayoutDocumentPane(layoutElement)); layoutElement.IsActive = true; layoutElement.Root.CollectGarbage(); }
internal override LayoutElement Convert(UiManager uiManager) { var lr = new LayoutDocumentPaneGroup { DockWidth = new GridLength(Width.Value, Width.Unit), DockHeight = new GridLength(Height.Value, Height.Unit), Orientation = Orientation }; foreach (var x in Children) { if (x is LayoutInfo) lr.Children.Add((ILayoutDocumentPane)((LayoutInfo)x).Convert(uiManager)); else if (x is PaneInfo) lr.Children.Add((ILayoutDocumentPane)((PaneInfo)x).Convert(uiManager)); else throw new Exception(); } return lr; }
public void AddPageInDocumentPane(string title) { if(m_openedDocuments.ContainsKey(title)) { LayoutDocument tmpdoc = m_openedDocuments[title]; tmpdoc.IsSelected = true; return; } LayoutDocumentPaneGroup m_LayoutDocumentPaneGroup=null; foreach (ILayoutElement pane in m_layoutpane.Children) { if (pane is LayoutDocumentPaneGroup) { m_LayoutDocumentPaneGroup =(LayoutDocumentPaneGroup) pane; break; } } if (m_LayoutDocumentPaneGroup == null) { m_LayoutDocumentPaneGroup = new LayoutDocumentPaneGroup(); m_layoutpane.Children.Add(m_anchorablepanegroup); } LayoutDocumentPane layoutpane = null; if (m_LayoutDocumentPaneGroup.Children.Count == 0) { layoutpane = new LayoutDocumentPane(); m_LayoutDocumentPaneGroup.Children.Add(layoutpane); } else { layoutpane = (LayoutDocumentPane)m_LayoutDocumentPaneGroup.Children[0]; } LayoutDocument document = new LayoutDocument() { Content = new TextBox() { AcceptsReturn = true, HorizontalScrollBarVisibility = ScrollBarVisibility.Auto, VerticalScrollBarVisibility = ScrollBarVisibility.Auto}, Title = title }; document.Closed += document_Closed; layoutpane.Children.Add(document); m_openedDocuments.Add(title,document); document.IsSelected = true; }