Is there a way to enable WPF RadDock to open floated windows in a standalone window rather than a ToolWindow? The feature looks like its available in the WinForms version of RadDock but not WPF RadDock.
Would this be achieved in the DockingPanesFactory?
<telerik:RadDocking Grid.Row="2" x:Name="radDocking"<br> prism:RegionManager.RegionName="DocumentsRegion"<br> BorderThickness="0"<br> CustomElementLoading="RadDocking_CustomElementLoading"<br> HasDocumentHost="False"><br> <br> <telerik:RadDocking.DockingPanesFactory><br> <local1:ShellDockingPanesFactory /><br> </telerik:RadDocking.DockingPanesFactory><br><br> <telerik:RadSplitContainer Orientation="Vertical" InitialPosition="DockedLeft"><br> <telerik:RadPaneGroup HorizontalAlignment="Left" x:Name="leftGroup" telerik:RadDocking.SerializationTag="leftGroup"/><br> </telerik:RadSplitContainer><br> <telerik:RadSplitContainer InitialPosition="DockedRight" ><br> <telerik:RadPaneGroup HorizontalAlignment="Right" x:Name="rightGroup" telerik:RadDocking.SerializationTag="rightGroup"/><br> </telerik:RadSplitContainer><br> <telerik:RadSplitContainer InitialPosition="DockedBottom" ><br> <telerik:RadPaneGroup x:Name="bottomGroup" telerik:RadDocking.SerializationTag="bottomGroup"/><br> </telerik:RadSplitContainer><br> <telerik:RadSplitContainer InitialPosition="FloatingOnly" ><br> <telerik:RadPaneGroup x:Name="floatingOnlyGroup" telerik:RadDocking.SerializationTag="floatingOnlyGroup"/> <br> </telerik:RadSplitContainer><br> <telerik:RadSplitContainer InitialPosition="FloatingDockable" ><br> <telerik:RadPaneGroup x:Name="floatingDockableGroup" telerik:RadDocking.SerializationTag="floatingDockableGroup"/><br> </telerik:RadSplitContainer><br> <br> </telerik:RadDocking>
<p>public class ShellDockingPanesFactory : DockingPanesFactory<br> {<br> <br> protected override void AddPane(RadDocking radDocking, RadPane pane)<br> {<br> <br> var paneModel = pane as IPaneModel;<br> if (paneModel != null && !(pane is RadDocumentPane))<br> {<br> RadPaneGroup group = null;<br> switch (paneModel.Position)<br> {<br> case DockState.DockedRight:<br> group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "rightGroup") as RadPaneGroup;<br> if (group != null)<br> {<br> group.Items.Add(pane);<br> }<br> return;<br> case DockState.DockedBottom:<br> group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "bottomGroup") as RadPaneGroup;<br> if (group != null)<br> {<br> group.Items.Add(pane);<br> }<br> return;<br> case DockState.DockedLeft:<br> group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "leftGroup") as RadPaneGroup;<br> if (group != null)<br> {<br> group.Items.Add(pane);<br> }<br> return;<br> case DockState.FloatingOnly:<br> var foSplitContainer = radDocking.GeneratedItemsFactory.CreateSplitContainer();<br> group = radDocking.GeneratedItemsFactory.CreatePaneGroup();<br> foSplitContainer.Items.Add(group);<br> group.Items.Add(pane);<br> radDocking.Items.Add(foSplitContainer);<br> pane.MakeFloatingOnly();<br> return;<br> case DockState.FloatingDockable:<br> var fdSplitContainer = radDocking.GeneratedItemsFactory.CreateSplitContainer();<br> group = radDocking.GeneratedItemsFactory.CreatePaneGroup();<br> fdSplitContainer.Items.Add(group);<br> group.Items.Add(pane);<br> radDocking.Items.Add(fdSplitContainer);<br> pane.MakeFloatingDockable();<br> return;<br> case DockState.DockedTop:<br> default:<br> return;<br> }<br> }<br> base.AddPane(radDocking, pane);<br> }<br> }</p><p></p>