void PrepareDemoModuleRoot(DemoModule demoModuleControl) { var manager = ((Grid)demoModuleControl.Content).Children[0] as DockLayoutManager; if (manager != null) { demoModuleControl.Root = demoModuleControl; return; } manager = new DockLayoutManager() { Background = new SolidColorBrush(Colors.Transparent) }; manager.LayoutRoot = new LayoutGroup() { Orientation = Orientation.Horizontal, Background = new SolidColorBrush(Colors.Transparent) }; var demoModulePanel = new LayoutPanel() { ShowCaption = false, ShowBorder = false, Background = new SolidColorBrush(Colors.Transparent) }; demoModulePanel.Content = demoModuleControl; manager.LayoutRoot.Add(demoModulePanel); demoModuleControl.Root = manager; }
private void dockManager_DockItemClosing(object sender, DevExpress.Xpf.Docking.Base.ItemCancelEventArgs e) { DockLayoutManager documentManager = sender as DockLayoutManager; var item = documentManager.ActiveDockItem; if (item != null && item.ActualCaption != null && item.ActualCaption.ToString() == "测试结果") { var result = DXMessageBox.Show("是否关闭测试界面?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No); if (result == MessageBoxResult.Yes) { e.Cancel = false; } else { e.Cancel = true; } } else if (item != null && item.ActualCaption != null && item.ActualCaption.ToString() == "本地校准") { if (TestPlanManager.CurrentTestPlan == null) { return; } var dialogResult = DXMessageBox.Show("是否保存校准?", "提示", MessageBoxButton.OKCancel); if (dialogResult == MessageBoxResult.OK) { Interface.SaveAllLocalSettings(TestPlanManager.CurrentTestPlan); } } }
public string Resolve(DockLayoutManager owner, object item) { Person p = item as Person; if (p.IsTabbed) { return("TabbedGroup1"); } if (p.IsFloat) { var floatGroups = owner.FloatGroups; FloatGroup fg; if (floatGroups.Count == 0) { fg = new FloatGroup(); fg.Name = "NewFloatGroup1"; owner.FloatGroups.Add(fg); } else { fg = floatGroups[0]; } return(fg.Name); } return(p.ParentName); }
private void addViews(LayoutPanel pan1, CameraContainer activecam) { DockLayoutManager doc = new DockLayoutManager(); pan1.Content = doc; LayoutGroup gr2 = new LayoutGroup() { Orientation = Orientation.Horizontal }; doc.LayoutRoot = gr2; LayoutPanel settings = new LayoutPanel(); settings.Content = activecam.settings; gr2.Add(settings); LayoutPanel prev = new LayoutPanel(); prev.Content = activecam.preview; gr2.Add(prev); LayoutPanel hist = new LayoutPanel(); hist.Content = activecam.hist; gr2.Add(hist); pan1.Caption = activecam.Name; //panel contains preview }
//初始化布局 private void InitFormLayout() { this.IsMdiContainer = true; _LayoutManager = new DockLayoutManager(this, null); //挂起工具窗口停靠管理器事务,以加快速度管理 _LayoutManager.SuspendLayout(); _LayoutManager.ToolWindows.Add(new MessageTools()); _LayoutManager.ToolWindows["MessageTool"].Text = "信息窗口"; _LayoutManager.ToolWindows["MessageTool"].DockTo(DockTargetHost.DockHost, DockPosition.Bottom); _LayoutManager.ToolWindows.Add(new ToolPanel()); _LayoutManager.ToolWindows["MainPanel"].Text = "工具面板"; _LayoutManager.ToolWindows["MainPanel"].DockTo(DockTargetHost.DockHost, DockPosition.Left); //ToolWindow tt=new MessageTools(); //tt.State=ToolWindowState.Mdi; //tt.Key = "md1"; //ToolWindow tt1=new MessageTools(); //tt1.State=ToolWindowState.Mdi; //tt1.Key = "md2"; //_LayoutManager.ToolWindows.Add(tt); //_LayoutManager.ToolWindows.Add(tt1); //执行正常的工具窗口停靠管理 _LayoutManager.ResumeLayout(); //_LayoutManager.LoadLayout(System.Environment.CurrentDirectory + @"\\DefaultLayout.xml"); }
void OnViewsCollectionChanged(IRegion region, DocumentGroup regionTarget, object sender, NotifyCollectionChangedEventArgs e) { if (e.Action == NotifyCollectionChangedAction.Add) { foreach (object view in e.NewItems) { DockLayoutManager manager = regionTarget.GetDockLayoutManager(); DocumentPanel panel = manager.DockController.AddDocumentPanel(regionTarget); IView viewInfo = panel.Content as IView; if (viewInfo != null) { panel.Caption = viewInfo.Caption; } else { panel.Caption = ""; } manager.DockController.Activate(panel); this.logger.Log(String.Format("DocumentGroupAdapter: View '{0}' added to region '{1}'", view, region.Name), Category.Debug, Priority.None); } } }
public LayoutManager(DockLayoutManager dockCtl) { if (dockCtl == null) throw new ArgumentNullException(nameof(dockCtl)); DockCtl = dockCtl; }
void bClose_ItemClick(object sender, ItemClickEventArgs ea) { DockLayoutManager manager = DockLayoutManager.GetDockLayoutManager(sender as DependencyObject); BaseLayoutItem item = DockLayoutManager.GetLayoutItem(sender as DependencyObject); manager.DockController.Close(item); }
public NavigationWithPanal(NavBarItem navItem, string viewName, DockLayoutManager dockManager, DocumentGroup documentContainer) { NavItem = navItem; navItem.Click += navItem_Click; ViewName = viewName; DockManager = dockManager; DocumentContainer = documentContainer; }
void ClosePageClick(object sender, RoutedEventArgs e) { LayoutControlItem item = DockLayoutManager.GetLayoutItem((DependencyObject)sender) as LayoutControlItem; if (item != null) { item.Parent.Remove(item); } }
void RenamePageClick(object sender, RoutedEventArgs e) { LayoutControlItem item = DockLayoutManager.GetLayoutItem((DependencyObject)sender) as LayoutControlItem; if (item != null) { dockManager.LayoutController.Rename(item); } }
void panelContentControlBackButtonClicked(object sender, EventArgs e) { if (animationLock > 0) { return; } PanelContentControl pcc = (PanelContentControl)sender; DoExpand(DockLayoutManager.GetLayoutItem(sender as DependencyObject)); pcc.IsExpanded = !pcc.IsExpanded; }
public String Resolve(DockLayoutManager owner, Object item) { var layoutPanel = item as BaseLayoutItem; if (layoutPanel == null) { return("DocumentHost"); } owner.LayoutController.Activate(layoutPanel); return(layoutPanel.Tag as String); }
private void OpenHostView_OnItemClick(Object sender, ItemClickEventArgs e) { if (HostView == null) { var view = new HostView(ExternalHandle); HostView = new DocumentPanel(); HostView.Caption = "Host View"; HostView.Content = view; DocumentGroup.Add(HostView); } DockLayoutManager.Activate(HostView); }
string ILayoutAdapter.Resolve(DockLayoutManager owner, object item) { BaseLayoutItem panelHost = owner.GetItem("PanelHost"); if (panelHost == null) { panelHost = new LayoutGroup() { Name = "PanelHost", DestroyOnClosingChildren = false }; owner.LayoutRoot.Add(panelHost); } return("PanelHost"); }
private void OpenMapView_OnItemClick(Object sender, ItemClickEventArgs e) { if (MapView == null) { var viewModel = new MapViewModel(); var view = new MapView(); view.DataContext = viewModel; MapView = new DocumentPanel(); MapView.Caption = "Map View"; MapView.Content = view; DocumentGroup.Add(MapView); } DockLayoutManager.Activate(MapView); }
void OnPanelContentControlMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { if (animationLock > 0) { return; } PanelContentControl pcc = (PanelContentControl)sender; if (!pcc.IsExpanded) { DoExpand(DockLayoutManager.GetLayoutItem(sender as DependencyObject)); pcc.IsExpanded = !pcc.IsExpanded; } }
void HideFloatGroups(DockLayoutManager dockLayoutManager) { foreach (FloatGroup floatGroup in dockLayoutManager.FloatGroups) { if (floatGroup.IsOpen) { floatGroup.ShouldRestoreOnActivate = true; if (floatGroup.IsOpen) { floatGroup.IsOpen = false; } } } }
protected override void Adapt(IRegion region, LayoutGroup rootGroup) { this.LayoutManager = rootGroup.GetDockLayoutManager(); this.LayoutManager.DisposeOnWindowClosing = true; this.LayoutManager.OwnsFloatWindows = true; this.LayoutManager.ClosingBehavior = ClosingBehavior.ImmediatelyRemove; this.LayoutManager.FloatingDocumentContainer = DevExpress.Xpf.Docking.Base.FloatingDocumentContainer.DocumentHost; this.LayoutManager.DockItemClosed += LayoutManager_DockItemClosed; //this.LayoutManager.ClosedPanelsBarVisibility = DevExpress.Xpf.Docking.Base.ClosedPanelsBarVisibility.Auto; //this.LayoutManager.ClosedPanelsBarPosition = Dock.Bottom; region.Views.CollectionChanged += (s, e) => OnViewsCollectionChanged(region, s, e); }
public DockLayoutManager FindDockLayoutManager() { VisualTreeEnumerator e = new VisualTreeEnumerator(this); while (e.MoveNext()) { DockLayoutManager manager = e.Current as DockLayoutManager; if (manager != null) { return(manager); } } return(null); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { DockLayoutManager manager = value as DockLayoutManager; ObservableCollection <object> documents = new ObservableCollection <object>(); foreach (BaseLayoutItem item in manager.GetItems()) { if (item.ItemType == LayoutItemType.Document && !item.Closed) { documents.Add(item); } } return(documents); }
protected override void OnAttached() { base.OnAttached(); DockLayoutManager manager = AssociatedObject as DockLayoutManager; if (manager != null && !managers.Contains(manager)) { lock (managers) { foreach (var m in managers) { DockLayoutManagerLinker.Link(manager, m); } managers.Add(manager); } } }
public LayoutManager(DockLayoutManager dockingManager, DocumentGroup documentGroup = null) { if (dockingManager == null) { throw new ArgumentNullException(nameof(dockingManager)); } _documentGroup = documentGroup; DockingManager = dockingManager; //DockingManager.LayoutChanged += OnDockingManagerLayoutChanged; //DockingManager.DocumentClosing += OnDockingManagerDocumentClosing; //DockingManager.DocumentClosed += OnDockingManagerDocumentClosed; //OnDockingManagerLayoutChanged(null, null); }
protected override void OnDetaching() { DockLayoutManager manager = AssociatedObject as DockLayoutManager; if (manager != null && managers.Contains(manager)) { lock (managers) { foreach (var m in managers) { DockLayoutManagerLinker.Unlink(manager, m); } managers.Remove(manager); } } base.OnDetaching(); }
//// //// All things related to DocumentPanels //// #region DocumentPanel Region /// <remarks> /// Summary: /// Remove a dockpanel from the primary document group. /// </remarks> private void DockLayoutManager_DockItemClosing(object sender, DevExpress.Xpf.Docking.Base.ItemCancelEventArgs e) { DockLayoutManager dm = sender as DockLayoutManager; string caption = dm.ActiveDockItem.Caption.ToString(); // TO-DO : can't use "AnyDirty"... Need to figure out which VM we are dealing with..... if (Host.Instance.AnyDirty()) { MessageBoxResult result = MessageBox.Show("You have unsaved edits. Save changes before closing?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes); switch (result) { case MessageBoxResult.Yes: e.Cancel = true; return; case MessageBoxResult.No: break; default: e.Cancel = true; return; } } // Remove the MvvmBinder. Host.Instance.Execute(HostVerb.Close, caption); // TO-DO: This may need to move to Closed() // Set the previous DockPanel as the active panel int count = this.primaryDocumentGroup.Items.Count(); primaryDocumentGroup.SelectedTabIndex = primaryDocumentGroup.Items.Count - 1; if (primaryDocumentGroup.SelectedTabIndex >= 0) { this.dockLayoutManager.Activate(primaryDocumentGroup.Items[primaryDocumentGroup.SelectedTabIndex]); } // If there are no (more) documents in the documentGroup, then turn off HitTestVisible so // Main doesn't throw w/ a null reference if the user clicks on the empty document group panel. if (0 == count) { this.layoutGroupMain.IsHitTestVisible = false; } e.Handled = true; }
void ShowFloatGroups(DockLayoutManager dockLayoutManager) { if (!dockLayoutManager.IsVisible) { return; } foreach (FloatGroup floatGroup in dockLayoutManager.FloatGroups) { if (floatGroup.ShouldRestoreOnActivate) { floatGroup.ShouldRestoreOnActivate = false; if (!floatGroup.IsOpen) { floatGroup.IsOpen = true; } } } }
protected override void RaiseBeforeModuleDisappear() { base.RaiseBeforeModuleDisappear(); DisposeList = new List <DockLayoutManager>(); VisualTreeEnumerator e = new VisualTreeEnumerator(this); while (e.MoveNext()) { DockLayoutManager manager = e.Current as DockLayoutManager; if (manager != null) { DisposeList.Add(manager); manager.Visibility = Visibility.Collapsed; foreach (FloatGroup fGroup in manager.FloatGroups) { fGroup.IsOpen = false; } } } }
void OnViewsCollectionChanged(IRegion region, LayoutPanel regionTarget, object sender, NotifyCollectionChangedEventArgs e) { if (e.Action == NotifyCollectionChangedAction.Add) { regionTarget.Content = e.NewItems[0]; regionTarget.Visibility = System.Windows.Visibility.Visible; DockLayoutManager dockLayoutManager = regionTarget.GetDockLayoutManager(); if (dockLayoutManager.ClosedPanels.Contains(regionTarget)) { dockLayoutManager.DockController.Restore(regionTarget); } } if (e.Action == NotifyCollectionChangedAction.Remove) { regionTarget.Content = null; regionTarget.Visibility = System.Windows.Visibility.Collapsed; } }
public static DocumentPanel SelectPanel(DockLayoutManager manager, DocumentGroup baseGroup, Type controlType, bool autoActivate = false) { DocumentPanel panel = null; if (controlType.GetInterfaces().Contains(typeof (IDocumentPanelManager))) { // Тип реализует интерфейс string controlId = controlType.FullName; foreach ( DocumentPanel localpanel in baseGroup.Items.Where( x => x is DocumentPanel && (x as DocumentPanel).Control is IDocumentPanelManager)) { var panelControlId = localpanel.Control.GetType().ToString(); if (panelControlId == controlId) { panel = localpanel; break; } } if (panel == null) { // Не найден - создать panel = manager.DockController.AddDocumentPanel(baseGroup); panel.Content = Activator.CreateInstance(controlType); panel.Caption = (panel.Control as IDocumentPanelManager).PanelTitle; } if (autoActivate) manager.Activate(panel); } else { // Тип не реализует интерфейс panel = manager.DockController.AddDocumentPanel(baseGroup); panel.Content = Activator.CreateInstance(controlType); if (autoActivate) manager.Activate(panel); } return panel; }
private void DXRibbonWindow_Loaded(object sender, RoutedEventArgs e) { #region #CustomizeReviewingPane //Access the DockLayoutManager in the template: string name = RichEditControl.DockLayoutManagerName; DockLayoutManager manager = (DockLayoutManager)richEdit.Template.FindName(name, richEdit); //Retireve the Reviewing Pane LayoutPanel commentPanel = manager.LayoutRoot.Items[0] as LayoutPanel; DocumentPanel documentPanel = manager.LayoutRoot.Items[1] as DocumentPanel; //Dock panel to the right manager.DockController.Dock(commentPanel, documentPanel, DockType.Right); //Hide the pane to the tab commentPanel.AutoHidden = true; //Disable floating commentPanel.AllowFloat = false; #endregion #CustomizeReviewingPane }
private void DockLayoutManager_ShowingMenu(object sender, DevExpress.Xpf.Docking.Base.ShowingMenuEventArgs e) { DockLayoutManager dlm = sender as DockLayoutManager; DocumentPanel dp = dlm.ActiveDockItem as DocumentPanel; }
private void CreateComponent() { //s_tabbedMdiForm = this; m_mdiManager = new TabbedMdiManager(this); m_mdiManager.Style = RenderStyle.VS2005; //VS2005 has error m_mdiManager.AllowModifications = true; m_mdiManager.ShowMenuOnCtrlTab = true; m_mdiManager.AllowClose = true; m_mdiManager.FormSelected += new FormSelectedEventHandler(ChildForm_FormSelected); m_mdiManager.TabGroupOrientation = Orientation.Horizontal; m_topGroup = new TabbedMdiTabGroup(); m_mdiManager.TabGroups.Add(m_topGroup); m_bottomGroup = new TabbedMdiTabGroup(); //m_mdiManager.TabGroups.Add(m_bottomGroup); m_dockManager = new DockLayoutManager(this, null); m_dockManager.Style = RenderStyle.VS2005; m_dockManager.AllowAutoHide = true; m_dockManager.AllowDocking = true; m_dockManager.AllowFloating = true; m_dockManager.AllowHide = true; m_dockManager.AutoHideFrameAppearance.ShowHideDelay = 50; this.smartOutlookShortcutBar1 = new Xceed.SmartUI.Controls.OutlookShortcutBar.SmartOutlookShortcutBar(this.components); //this.smartOutlookShortcutBar1.UIStyle = Xceed.SmartUI.UIStyle.UIStyle.WindowsClassic; XceedUtility.SetUIStyle(this.smartOutlookShortcutBar1); CreateToolWindow(); }
void barManager_Loaded(object sender, RoutedEventArgs e) { DockLayoutSource = BarManager.Child as DockLayoutManager; DockLayoutSource.Loaded += Manager_Loaded; }