/// <summary>Class constructor from <see cref="LayoutAnchorSide"/> model.</summary> internal LayoutAnchorSideControl(LayoutAnchorSide model) { _model = model ?? throw new ArgumentNullException(nameof(model)); CreateChildrenViews(); _model.Children.CollectionChanged += (s, e) => OnModelChildrenCollectionChanged(e); UpdateSide(); }
public static LayoutAnchorGroup AddGroup(this LayoutAnchorSide side) { var group = new LayoutAnchorGroup(); side.AddChild(group); return(group); }
public LayoutRoot() { RightSide = new LayoutAnchorSide(); LeftSide = new LayoutAnchorSide(); TopSide = new LayoutAnchorSide(); BottomSide = new LayoutAnchorSide(); RootPanel = new LayoutPanel(new LayoutDocumentPane()); }
private void AddProperty(LayoutAnchorSide side, LayoutAnchorable content) { var group = (side.ChildrenCount > 0) ? side.Children[0] : AddLayoutItem(side, () => new LayoutAnchorGroup()); group.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); }
public bool BeforeInsertAnchorable(LayoutRoot layout, LayoutAnchorable anchorableToShow, ILayoutContainer destinationContainer) { //AD wants to add the anchorable into destinationContainer //just for test provide a new anchorablepane //if the pane is floating let the manager go ahead LayoutAnchorablePane destPane = destinationContainer as LayoutAnchorablePane; if (destinationContainer != null && destinationContainer.FindParent <LayoutFloatingWindow>() != null) { return(false); } //var toolsPane = layout.Descendents().OfType<LayoutAnchorablePane>().FirstOrDefault(d => d.Name == "ToolsPane"); Type toolType = anchorableToShow.Content.GetType(); var docData = _dockViewmodel.Data.DocumentTypeData.FirstOrDefault(a => a.DocType == _dockViewmodel.Data.ActiveDocument.GetType()); var pos = docData.DicToolDockPosition[toolType]; LayoutAnchorSide side = GetAnchorSide(pos, layout); if (side.Children.Count == 0) { var group = new LayoutAnchorGroup(); group.Children.Add(anchorableToShow); side.Children.Add(group); SetToolPaneProperties(anchorableToShow); return(true); } else { side.Children[0].Children.Add(anchorableToShow); SetToolPaneProperties(anchorableToShow); return(true); } return(false); //return true; }
internal LayoutAnchorSideControl(LayoutAnchorSide model) { if (model == null) { throw new ArgumentNullException("model"); } this._model = model; this.CreateChildrenViews(); this._model.Children.CollectionChanged += new NotifyCollectionChangedEventHandler((object s, NotifyCollectionChangedEventArgs e) => this.OnModelChildrenCollectionChanged(e)); this.UpdateSide(); }
public static LayoutAnchorGroup FirstOrAdd(this LayoutAnchorSide side) { var group = side.Children.FirstOrDefault <LayoutAnchorGroup>(); if (group is null) { group = new LayoutAnchorGroup(); side.AddChild(group); } return(group); }
/// <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); }
internal LayoutAnchorSideControl(LayoutAnchorSide model) { if (model == null) throw new ArgumentNullException("model"); _model = model; CreateChildrenViews(); _model.Children.CollectionChanged += (s, e) => OnModelChildrenCollectionChanged(e); UpdateSide(); }
internal LayoutAnchorSideControl(LayoutAnchorSide model) { if (model is null) { throw new ArgumentNullException("model"); } _model = model; CreateChildrenViews(); _model.Children.CollectionChanged += (s, e) => OnModelChildrenCollectionChanged(e); UpdateSide(); }
/// <summary> /// Obtiene el grupo de ventanas del panel de la posición especificada /// </summary> private LayoutAnchorGroup GetGroupPane(LayoutRoot layoutRoot, SystemControllerEnums.DockPosition position) { LayoutAnchorSide layoutSide = GetAnchorSide(layoutRoot, position); // Crea el panel si no existía if (layoutSide == null) { layoutSide = new LayoutAnchorSide(); } // Añade un grupo si no existía if (layoutSide.Children == null || layoutSide.Children.Count == 0) { layoutSide.Children.Add(new LayoutAnchorGroup()); } // Devuelve el primer grupo return(layoutSide.Children[0]); }
private static LayoutAnchorGroup FindAnchorableGroup(LayoutRoot layout, PaneLocation location) { try { LayoutAnchorSide panelGroupParent = null; switch (location) { case PaneLocation.Left: panelGroupParent = layout.LeftSide; break; case PaneLocation.Right: panelGroupParent = layout.RightSide; break; case PaneLocation.Bottom: panelGroupParent = layout.BottomSide; break; default: throw new ArgumentOutOfRangeException("location:" + location); } if (panelGroupParent.Children.Count == 0) { var layoutAnchorGroup = new LayoutAnchorGroup(); panelGroupParent.Children.Add(layoutAnchorGroup); return(layoutAnchorGroup); } else { return(panelGroupParent.Children[0]); } } catch (Exception exp) { logger.Error(exp); } return(null); }
public void ReplaceChild(ILayoutElement oldElement, ILayoutElement newElement) { if (oldElement == RootPanel) RootPanel = (LayoutPanel)newElement; else if (_floatingWindows != null && _floatingWindows.Contains(oldElement)) { int index = _floatingWindows.IndexOf(oldElement as LayoutFloatingWindow); _floatingWindows.Remove(oldElement as LayoutFloatingWindow); _floatingWindows.Insert(index, newElement as LayoutFloatingWindow); } else if (_hiddenAnchorables != null && _hiddenAnchorables.Contains(oldElement)) { int index = _hiddenAnchorables.IndexOf(oldElement as LayoutAnchorable); _hiddenAnchorables.Remove(oldElement as LayoutAnchorable); _hiddenAnchorables.Insert(index, newElement as LayoutAnchorable); } else if (oldElement == TopSide) TopSide = (LayoutAnchorSide)newElement; else if (oldElement == RightSide) RightSide = (LayoutAnchorSide)newElement; else if (oldElement == BottomSide) BottomSide = (LayoutAnchorSide)newElement; else if (oldElement == LeftSide) LeftSide = (LayoutAnchorSide)newElement; }
public void RemoveChild(ILayoutElement element) { if (element == RootPanel) RootPanel = null; else if (_floatingWindows != null && _floatingWindows.Contains(element)) _floatingWindows.Remove(element as LayoutFloatingWindow); else if (_hiddenAnchorables != null && _hiddenAnchorables.Contains(element)) _hiddenAnchorables.Remove(element as LayoutAnchorable); else if (element == TopSide) TopSide = null; else if (element == RightSide) RightSide = null; else if (element == BottomSide) BottomSide = null; else if (element == LeftSide) LeftSide = null; }