ComponentFactory.Krypton.Docking.KryptonDockingDockspace.LoadElementFromXml C# (CSharp) Method

LoadElementFromXml() public method

Loads docking configuration information using a provider xml reader.
public LoadElementFromXml ( XmlReader xmlReader, KryptonPageCollection pages ) : void
xmlReader XmlReader Xml reader object.
pages KryptonPageCollection Collection of available pages for adding.
return void
        public override void LoadElementFromXml(XmlReader xmlReader, KryptonPageCollection pages)
        {
            // Let base class load the pages into the dockspace
            base.LoadElementFromXml(xmlReader, pages);

            // If a size was found during loading then apply it now
            if (!LoadSize.IsEmpty)
            {
                switch (DockspaceControl.Dock)
                {
                    case DockStyle.Left:
                    case DockStyle.Right:
                        DockspaceControl.Width = LoadSize.Width;
                        break;
                    case DockStyle.Top:
                    case DockStyle.Bottom:
                        DockspaceControl.Height = LoadSize.Height;
                        break;
                }
            }

            // Determine the correct visible state of the control
            if (DockspaceControl.CellVisibleCount == 0)
            {
                _cacheCellVisibleCount = 0;
                OnHasNoVisibleCells(EventArgs.Empty);
            }
            else
            {
                _cacheCellVisibleCount = 1;
                OnHasVisibleCells(EventArgs.Empty);
            }

            // If loading did not create any pages then kill ourself as not needed
            if (DockspaceControl.PageCount == 0)
                DockspaceControl.Dispose();
        }

Usage Example

Example #1
0
        /// <summary>
        /// Perform docking element specific actions for loading a child xml.
        /// </summary>
        /// <param name="xmlReader">Xml reader object.</param>
        /// <param name="pages">Collection of available pages.</param>
        /// <param name="child">Optional reference to existing child docking element.</param>
        protected override void LoadChildDockingElement(XmlReader xmlReader,
                                                        KryptonPageCollection pages,
                                                        IDockingElement child)
        {
            if (child != null)
            {
                child.LoadElementFromXml(xmlReader, pages);
            }
            else
            {
                Size   dockspaceSize = _defaultDockspaceSize;
                string elementSize   = xmlReader.GetAttribute("S");

                // Cache the loading size
                if (!string.IsNullOrEmpty(elementSize))
                {
                    dockspaceSize = CommonHelper.StringToSize(elementSize);
                }

                // Create a new dockspace and then reload it
                KryptonDockingDockspace dockspace = AppendDockspace(xmlReader.GetAttribute("N"), dockspaceSize);
                dockspace.LoadElementFromXml(xmlReader, pages);
            }
        }