Exemplo n.º 1
0
        public void SetDockPanelVisibilityByPanelText(string panelText, DockVisibility visibility)
        {
            DockPanel dp = FindDockPanelByPanelText(panelText);

            if (dp != null)
            {
                dp.Visibility = visibility;
            }
        }
Exemplo n.º 2
0
		private void barCheckItemNavigationPaneVisibility_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
			if(barCheckItemNavigationPaneVisibility.Down) {
				dockPanelNavigation.Visibility = navigationPaneVisibility;
			}
			else {
				navigationPaneVisibility = dockPanelNavigation.Visibility;
				dockPanelNavigation.Visibility = DockVisibility.Hidden;
			}
		}
Exemplo n.º 3
0
		public override void ReloadSettings() {
			base.ReloadSettings();
			if(TemplateInfo != null) {
				dockPanelNavigation.Width = TemplateInfo.GetAttributeIntValue(NavigationWidthAttributeName, dockPanelNavigation.Width);
				if(!string.IsNullOrEmpty(TemplateInfo.GetAttributeValue(NavigationDockAttributeName))) {
					dockPanelNavigation.Dock = (DockingStyle)Enum.Parse(typeof(DockingStyle), TemplateInfo.GetAttributeValue(NavigationDockAttributeName));
				}
				if(!string.IsNullOrEmpty(TemplateInfo.GetAttributeValue(NavigationVisibilityAttributeName))) {
					navigationPaneVisibility = (DockVisibility)Enum.Parse(typeof(DockVisibility), TemplateInfo.GetAttributeValue(NavigationVisibilityAttributeName), true);
				}
				barCheckItemNavigationPaneVisibility.Down = (navigationPaneVisibility == DockVisibility.AutoHide || navigationPaneVisibility == DockVisibility.Visible);
			}
		}
Exemplo n.º 4
0
        /// <summary>
        /// 创建、显示停靠面板并放置窗体,面板自动与已有面板组合成标签式面板。
        /// <para>不重复打开拥有相同窗体的面板</para>
        /// </summary>
        /// <param name="form">内置在停靠面板的窗体</param>
        /// <param name="width">面板宽度,若值≤0则等同窗体宽度</param>
        /// <param name="height">面板高度,若值≤0则等同窗体高度</param>
        /// <param name="visibility">指示面板显示/隐藏/自动隐藏的枚举</param>
        public void AddFormToTabPanel(Form form, int width = 600, int height = 600, DockVisibility visibility = DockVisibility.Visible)
        {
            // 查找包含指定窗体的DockPanel,通过Tag属性区分面板(窗体)
            var allPanels  = dockManager1.Panels.Cast <DockPanel>();
            var existPanel = allPanels.FirstOrDefault(v => (v.Tag != null) && v.Tag.Equals(form.Name + form.Text));

            DockPanel dockPanel;

            if (existPanel == null)//不存在拥有指定窗体的DockPanel,则创建之
            {
                int panelCnt = dockManager1.Panels.Count;
                if (panelCnt == 1)//停靠到其他面板,形成标签面板
                {
                    dockPanel = dockManager1.AddPanel(DockingStyle);
                    dockPanel.DockAsTab(dockManager1.Panels[0]);
                }
                else if (panelCnt > 1)//停靠到其他面板,形成标签面板
                {
                    var tabPanel = allPanels.FirstOrDefault(v => v.Tabbed.Equals(true));
                    if (tabPanel != null)
                    {
                        dockPanel = tabPanel.AddPanel();
                    }
                    else
                    {
                        dockPanel = dockManager1.AddPanel(DockingStyle);
                        dockPanel.DockAsTab(dockManager1.Panels[0]);
                    }
                }
                else//创建第一个面板
                {
                    dockPanel = dockManager1.AddPanel(DockingStyle);
                }

                dockPanel.Size          = new Size(width > 0 ? width : form.Width, height > 0 ? height : form.Height);
                dockPanel.Tag           = form.Name + form.Text;//标记窗体,以区分不同窗体
                dockPanel.Text          = form.Text;
                dockPanel.Visibility    = visibility;
                dockPanel.FloatLocation = FloatLocation;

                FormIntoDockPanel(form, dockPanel);
            }
            else
            {
                dockPanel = existPanel;
            }
            dockPanel.Show();
            dockPanel.BringToFront();
            form.Show();
        }
Exemplo n.º 5
0
        private void ProcessDisplayOptions()
        {
            // Adjust the visibility of the chart statistics control. The chart statistics panel has only 2 options: hidden or autohide.
            DockVisibility statisticsVisibility = (DisplayChartStatisticsDockingPanel) ?
                                                  DockVisibility.AutoHide :
                                                  DockVisibility.Hidden;

            SetVisibilityOfDockingPanel(m_jcwChartStatisticsCtl.PanelCaption, statisticsVisibility);

            // Adjust the visibility of the chart metadata control. The chart metadata panel has only 2 options: hidden or autohide.
            DockVisibility metadataVisibility = (DisplayChartMetadataDockingPanel) ?
                                                DockVisibility.AutoHide :
                                                DockVisibility.Hidden;

            SetVisibilityOfDockingPanel(m_jcwChartMetadataCtl.PanelCaption, metadataVisibility);
        }
Exemplo n.º 6
0
 private void SetRootPanelsVisibility(DockVisibility visibility)
 {
     for (int i = m_dockManager.RootPanels.Count - 1; i >= 0; i--)
     {
         DockPanel panel = m_dockManager.RootPanels[i];
         if (panel == null || panel.Dock == DockingStyle.Float)
             continue;
         if (panel.Count > 0 && !panel.Tabbed)
         {
             DockPanel lastChild = panel[panel.Count - 1];
             for (int j = 0; j < panel.Count - 1; j++)
                 panel[j].Visibility = DockVisibility.AutoHide;
             lastChild.Visibility = DockVisibility.AutoHide;
         }
         else
             panel.Visibility = visibility;
     }
 }
Exemplo n.º 7
0
 public void SetVisibilityOfDockingPanel(string dockingControlName, DockVisibility visibility)
 {
     jcwDockManager.SetDockPanelVisibilityByPanelText(dockingControlName, visibility);
 }
Exemplo n.º 8
0
        /// <summary>
        /// 创建、显示停靠面板并放置窗体(窗体的Show方法需另外指定),面板自动与已有面板组合成标签式面板。
        /// 不重复打开拥有相同窗体的面板。
        /// </summary>
        /// <param name="form">内置在停靠面板的窗体</param>
        /// <param name="width">面板宽度</param>
        /// <param name="height">面板高度</param>
        /// <param name="visibility">指示面板显示/隐藏/自动隐藏的枚举</param>
        public void AddDockFormToTabPanel(Form form, int width, int height, DockVisibility visibility = DockVisibility.Visible)
        {
            // 查找包含指定窗体的DockPanel
            var allPanels  = dockManager1.Panels.Cast <DockPanel>();
            var existPanel = allPanels.FirstOrDefault(v => (v.Tag != null) && v.Tag.Equals(form.Name + form.Text));//通过Tag属性区分面板(窗体)

            DockPanel dockPanel;

            if (existPanel == null)//不存在拥有指定窗体的DockPanel,则创建之
            {
                int panelCnt = dockManager1.Panels.Count;
                if (panelCnt == 1)//停靠到其他面板,形成标签面板
                {
                    dockPanel = dockManager1.AddPanel(DockingStyle);
                    dockPanel.DockAsTab(dockManager1.Panels[0]);
                }
                else if (panelCnt > 1)//停靠到其他面板,形成标签面板
                {
                    var tabPanel = allPanels.FirstOrDefault(v => v.Tabbed.Equals(true));
                    if (tabPanel != null)
                    {
                        dockPanel = tabPanel.AddPanel();
                    }
                    else
                    {
                        dockPanel = dockManager1.AddPanel(DockingStyle);
                        dockPanel.DockAsTab(dockManager1.Panels[0]);
                    }
                }
                else//创建第一个面板
                {
                    dockPanel = dockManager1.AddPanel(DockingStyle);
                }
                dockPanel.Size          = new Size(width, height);
                dockPanel.Tag           = form.Name + form.Text;//标记窗体,以区分不同窗体
                dockPanel.Text          = form.Text;
                dockPanel.Visibility    = visibility;
                dockPanel.FloatLocation = FloatLocation;

                //将窗体内置到面板工作区中
                int dockPanelWnd = dockPanel.ControlContainer.Handle.ToInt32();
                WinApi.SetParent(form.Handle.ToInt32(), dockPanelWnd);
                OnResize(dockPanelWnd, form.Handle);

                //窗体自适应停靠面板大小
                dockPanel.ControlContainer.SizeChanged += (sender, e) => OnResize(dockPanelWnd, form.Handle);

                //关闭面板时关闭窗体
                dockPanel.ClosingPanel += (sender, e) =>
                {
                    if (!form.IsDisposed && IsCloseDockPanel)
                    {
                        form.Close();
                    }
                };
                dockPanel.ClosingPanel += dockFormPanel_ClosingPanel;

                //关闭窗体时关闭面板
                form.FormClosed += (sender, e) =>
                {
                    FloatLocation = dockPanel.FloatLocation;
                    dockManager1.RemovePanel(dockPanel);
                };
            }
            else
            {
                dockPanel = existPanel;
            }
            dockPanel.Show();
        }
Exemplo n.º 9
0
 /// <summary>
 /// 创建、显示停靠面板并放置窗体(窗体的Show方法需另外指定),面板自动与已有面板组合成标签式面板。
 /// 不重复打开拥有相同窗体的面板。
 /// </summary>
 /// <param name="form">内置在停靠面板的窗体</param>
 /// <param name="visibility">指示面板显示/隐藏/自动隐藏的枚举</param>
 public void AddDockFormToTabPanel(Form form, DockVisibility visibility = DockVisibility.Visible)
 {
     AddDockFormToTabPanel(form, 500, 600, visibility);
 }