It’s been a long and frustrating road on which I have found a couple of bugs.
Requirement: Create a fully configurable form with parent/child tab capabilities.
Result: A workspace controlled by a KryptonDockingManager with each new page within the celList cell (Bottom Docked) created with an overlaid workspace and the ability to add pages to that workspace. These workspaces are persisted with SaveLayout to a stream that is then written by the KryptonDockingManager_PageSaving Event to the CDATA of the SaveLayout XML.
Problem: The supplied workspace persistence example uses a KryptonWorkSpace control. I needed to use a KryptonDocableWorksapce control. The later doesn’t serialize(SaveLayout) the same as the former resulting in pages being recreated with no Text/Title/Description/Tooltip information (T/TT/TD/TTT). Oh and the hard to find, less than intuitive RecreateLoadingPage event. There was a lot of %$&*^$#% when I eventually found that! Maybe should have been an overridable event?
KryptonWorkspace XML fragment
- <WC UN="0B8D769EC1ED434FBBB33534A7FB9C74" S="T,0,50:T,0,50" NM="BarTabGroup" AR="True" SP="P...1">
- <KP T="P...1" TT="P...1 Title" TD="P...1 Description" TTT="Page ToolTip" UN="P...1" MINS="200, 250" AHSS="200, 200" F="65534">
KryptonDockableWorkspace XML fragment
- <WC UN="1760050336F241EDEE8D65E3C8D49529" S="T,0,50:T,0,50" NM="BarTabGroup" AR="True" SP="P...1">
- <KP UN="P...1" S="False">
NOTE: Before anyone jumpe up and says “just put the TT’s in the XML”, it doesn’t work, I tried it. I will have to persist using WriteStartElement or CDATA. Not pretty but the only way I can think of.
BUG1: As stated above the serialization of a KryptonDockableWorkspace doesn’t persist page details.
BUG2: If a docked area under the control of a DockingManager is altered and then autohidden no page/cell layout information is persisted on a SaveConfig. The dockable area must be expanded when a SaveConfig is actioned for the persistence to work.
Anyway, this is a heads up for anyone else struggling with workspace/navigator dock/nondock controls and persistence. Also for Phil to have a look for the next release.