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>