public void SetDockPanelVisibilityByPanelText(string panelText, DockVisibility visibility) { DockPanel dp = FindDockPanelByPanelText(panelText); if (dp != null) { dp.Visibility = visibility; } }
private void barCheckItemNavigationPaneVisibility_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if(barCheckItemNavigationPaneVisibility.Down) { dockPanelNavigation.Visibility = navigationPaneVisibility; } else { navigationPaneVisibility = dockPanelNavigation.Visibility; dockPanelNavigation.Visibility = DockVisibility.Hidden; } }
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); } }
/// <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(); }
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); }
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; } }
public void SetVisibilityOfDockingPanel(string dockingControlName, DockVisibility visibility) { jcwDockManager.SetDockPanelVisibilityByPanelText(dockingControlName, visibility); }
/// <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(); }
/// <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); }