/// <summary> /// Occurs when a page is added to a cell in the workspace. /// </summary> /// <param name="sender">Source of the event.</param> /// <param name="e">A KryptonPageEventArgs containing the event data.</param> protected override void OnSpaceCellPageInserting(object sender, KryptonPageEventArgs e) { // Remove any store page for the unique name of this page being added. In either case of adding a store // page or a regular page we want to ensure there does not exist a store page for that same unique name. KryptonDockingManager dockingManager = DockingManager; if (dockingManager != null) { if (e.Item is KryptonStorePage) { KryptonFloatspace floatspace = sender as KryptonFloatspace; if ((floatspace != null) && (floatspace.CellForPage(e.Item) != null)) { // Prevent this existing store page from being removed due to the Propogate action below. This can // occur because a cell with pages is added in one go and so insert events are generated for the // existing pages inside the cell to ensure that the event is always fired consistently. IgnoreStorePage = (KryptonStorePage)e.Item; } } dockingManager.PropogateAction(ClearStoreAction, new string[] { e.Item.UniqueName }); IgnoreStorePage = null; } }