/// <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); }
/// <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); }
public void UpdateDocMinWidthHeightTest() { double documentPaneDockMinHeight = 100; double documentPaneDockMinWidth = 101; LayoutDocumentPane layoutDocumentPane = new LayoutDocumentPane { DockMinHeight = documentPaneDockMinHeight, DockMinWidth = documentPaneDockMinWidth }; layoutDocumentPane.InsertChildAt(0, new LayoutDocument { ContentId = "Document" }); LayoutDocumentPaneGroup layoutDocumentPaneGroup = new LayoutDocumentPaneGroup(); layoutDocumentPaneGroup.InsertChildAt(0, layoutDocumentPane); double anchorablePane1DockMinHeight = 150; double anchorablePane1DockMinWidth = 151; LayoutAnchorablePane layoutAnchorablePane1 = new LayoutAnchorablePane { DockMinHeight = anchorablePane1DockMinHeight, DockMinWidth = anchorablePane1DockMinWidth }; layoutAnchorablePane1.InsertChildAt(0, new LayoutAnchorable { ContentId = "Anchorable1" }); double anchorablePane2DockMinHeight = 200; double anchorablePane2DockMinWidth = 201; LayoutAnchorablePane layoutAnchorablePane2 = new LayoutAnchorablePane { DockMinHeight = anchorablePane2DockMinHeight, DockMinWidth = anchorablePane2DockMinWidth }; layoutAnchorablePane2.InsertChildAt(0, new LayoutAnchorable { ContentId = "Anchorable2" }); LayoutAnchorablePaneGroup layoutAnchorablePaneGroup = new LayoutAnchorablePaneGroup { Orientation = Orientation.Horizontal }; layoutAnchorablePaneGroup.InsertChildAt(0, layoutAnchorablePane1); layoutAnchorablePaneGroup.InsertChildAt(0, layoutAnchorablePane2); LayoutPanel layoutPanel = new LayoutPanel { Orientation = Orientation.Vertical }; layoutPanel.InsertChildAt(0, layoutDocumentPaneGroup); layoutPanel.InsertChildAt(1, layoutAnchorablePaneGroup); Assert.AreEqual(anchorablePane2DockMinWidth + anchorablePane1DockMinWidth, layoutAnchorablePaneGroup.CalculatedDockMinWidth()); Assert.AreEqual(Math.Max(anchorablePane2DockMinHeight, anchorablePane1DockMinHeight), layoutAnchorablePaneGroup.CalculatedDockMinHeight()); Assert.AreEqual(documentPaneDockMinWidth, layoutDocumentPaneGroup.CalculatedDockMinWidth()); Assert.AreEqual(documentPaneDockMinHeight, layoutDocumentPaneGroup.CalculatedDockMinHeight()); Assert.AreEqual( Math.Max(anchorablePane1DockMinWidth + anchorablePane2DockMinWidth, documentPaneDockMinWidth), layoutPanel.CalculatedDockMinWidth()); Assert.AreEqual(documentPaneDockMinHeight + anchorablePane2DockMinHeight, layoutPanel.CalculatedDockMinHeight()); }
public void CalculatedDockMinWidthHeightTest() { double defaultDockMinHeight = 25; double defaultDockMinWidth = 25; const double documentPaneDockMinHeight = 200; const double documentPaneDockMinWidth = 400; LayoutDocumentPane layoutDocumentPane = new LayoutDocumentPane { DockMinHeight = documentPaneDockMinHeight, DockMinWidth = documentPaneDockMinWidth }; layoutDocumentPane.InsertChildAt(0, new LayoutDocument { ContentId = "Document" }); LayoutDocumentPaneGroup layoutDocumentPaneGroup = new LayoutDocumentPaneGroup(); layoutDocumentPaneGroup.InsertChildAt(0, layoutDocumentPane); const double anchorablePaneDockMinHeight = 80; const double anchorablePaneDockMinWidth = 160; LayoutAnchorablePane layoutAnchorablePane = new LayoutAnchorablePane { DockMinHeight = anchorablePaneDockMinHeight, DockMinWidth = anchorablePaneDockMinWidth }; layoutAnchorablePane.InsertChildAt(0, new LayoutAnchorable { ContentId = "Anchorable" }); LayoutAnchorablePaneGroup layoutAnchorablePaneGroup = new LayoutAnchorablePaneGroup(); layoutAnchorablePaneGroup.InsertChildAt(0, layoutAnchorablePane); LayoutPanel layoutPanel = new LayoutPanel(); layoutPanel.InsertChildAt(0, layoutDocumentPaneGroup); layoutPanel.InsertChildAt(1, layoutAnchorablePaneGroup); Assert.AreEqual(defaultDockMinWidth, layoutPanel.DockMinWidth); Assert.AreEqual(defaultDockMinHeight, layoutPanel.DockMinHeight); Assert.AreEqual(documentPaneDockMinWidth + anchorablePaneDockMinWidth, layoutPanel.CalculatedDockMinWidth()); Assert.AreEqual(Math.Max(documentPaneDockMinHeight, anchorablePaneDockMinHeight), layoutPanel.CalculatedDockMinHeight()); Assert.AreEqual(documentPaneDockMinWidth, layoutDocumentPane.DockMinWidth); Assert.AreEqual(documentPaneDockMinHeight, layoutDocumentPane.DockMinHeight); Assert.AreEqual(layoutDocumentPane.DockMinWidth, layoutDocumentPane.CalculatedDockMinWidth()); Assert.AreEqual(layoutDocumentPane.DockMinHeight, layoutDocumentPane.CalculatedDockMinHeight()); Assert.AreEqual(defaultDockMinWidth, layoutDocumentPaneGroup.DockMinWidth); Assert.AreEqual(defaultDockMinWidth, layoutDocumentPaneGroup.DockMinHeight); Assert.AreEqual(documentPaneDockMinWidth, layoutDocumentPaneGroup.CalculatedDockMinWidth()); Assert.AreEqual(documentPaneDockMinHeight, layoutDocumentPaneGroup.CalculatedDockMinHeight()); Assert.AreEqual(anchorablePaneDockMinWidth, layoutAnchorablePane.DockMinWidth); Assert.AreEqual(anchorablePaneDockMinHeight, layoutAnchorablePane.DockMinHeight); Assert.AreEqual(layoutAnchorablePane.DockMinWidth, layoutAnchorablePane.CalculatedDockMinWidth()); Assert.AreEqual(layoutAnchorablePane.DockMinHeight, layoutAnchorablePane.CalculatedDockMinHeight()); Assert.AreEqual(defaultDockMinWidth, layoutAnchorablePaneGroup.DockMinWidth); Assert.AreEqual(defaultDockMinWidth, layoutAnchorablePaneGroup.DockMinHeight); Assert.AreEqual(anchorablePaneDockMinWidth, layoutAnchorablePaneGroup.CalculatedDockMinWidth()); Assert.AreEqual(anchorablePaneDockMinHeight, layoutAnchorablePaneGroup.CalculatedDockMinHeight()); layoutPanel.RemoveChild(layoutDocumentPaneGroup); Assert.AreEqual(anchorablePaneDockMinWidth, layoutPanel.CalculatedDockMinWidth()); Assert.AreEqual(anchorablePaneDockMinHeight, layoutPanel.CalculatedDockMinHeight()); }