Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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());
        }