I have panes that are docked, and for example have a size of 640 * 480 while docked. When I move the pane outside the application the floating pane now gets a different size, 220 * 300.
I want to keep the size equal, the floating pane should keep the size of the docked pane. I tried setting RadDocking.SetFloatingSize on the splitcontainer, but that does not help.
How can I solve this?
I want to keep the size equal, the floating pane should keep the size of the docked pane. I tried setting RadDocking.SetFloatingSize on the splitcontainer, but that does not help.
How can I solve this?
5 Answers, 1 is accepted
0
Hi Pieter,
I would suggest to subscribe to PaneStateChange event of the RadDocking control and in its handler find the ToolWindow where the pane is placed and set its size like this:
Hope this helps.
Kind regards,
Yana
the Telerik team
I would suggest to subscribe to PaneStateChange event of the RadDocking control and in its handler find the ToolWindow where the pane is placed and set its size like this:
private
void
dock_PaneStateChange(
object
sender, Telerik.Windows.RadRoutedEventArgs e)
{
var pane = e.OriginalSource
as
RadPane;
if
(pane !=
null
&& pane.IsFloating)
{
var window = pane.GetParentToolWindow();
this
.Dispatcher.BeginInvoke(() =>
{
if
(window !=
null
)
{
window.Width = 100;
window.Height = 100;
}
});
}
}
Hope this helps.
Kind regards,
Yana
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>
0
Pieter
Top achievements
Rank 2
answered on 26 Oct 2011, 02:09 PM
Yana,
Thanks for responding. I tried your code, but the floating pane size just does not change.
I changed the code a bit because the lamba did not compile.
Any other suggestions are welcome, also on the subject of retrieving the size of the docked pane before it gets floating.
Thanks for responding. I tried your code, but the floating pane size just does not change.
I changed the code a bit because the lamba did not compile.
Any other suggestions are welcome, also on the subject of retrieving the size of the docked pane before it gets floating.
private
delegate
void
SetToolWindowSizeDelegate(ToolWindow window,
double
Width,
double
Height);
private
void
SetToolWindowSize(ToolWindow window,
double
Width,
double
Height)
{
if
(!window.CheckAccess())
{
window.Dispatcher.BeginInvoke(
new
SetToolWindowSizeDelegate(SetToolWindowSize),
new
object
[] { window, Width, Height });
}
else
{
window.Width = Width;
window.Height = Height;
}
}
// SetWindowSize
private
void
RadDocking_PaneStateChange(
object
sender, Telerik.Windows.RadRoutedEventArgs e)
{
var pane = e.OriginalSource
as
RadPane;
if
(pane !=
null
&& pane.IsFloating)
{
ToolWindow window = pane.GetParentToolWindow();
SetToolWindowSize(window, 400.0, 500.0);
}
}
// RadDocking_PaneStateChange
0
Hello Pieter,
I'm sorry for my confusion, this code was for Silverlight.
I've attached a simple WPF project demonstrating the needed approach.
Please download it and give it a try.
Regards,
Yana
the Telerik team
I'm sorry for my confusion, this code was for Silverlight.
I've attached a simple WPF project demonstrating the needed approach.
Please download it and give it a try.
Regards,
Yana
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>
0
HoriaTu
Top achievements
Rank 2
answered on 17 Jul 2013, 09:24 PM
The example is great,
But I want to initialize ToolWindow size only when I float the RadPane from its docked (in a RADGroup) position; when I LoadLayout, I need to let the ToolWindow size unchanged (as it was saved with SaveLayout.)
As a minimum code I have:
saveLayoutControl.LoadingLayout = true;
try
{
using (var isoStream = saveLayoutControl.Model.GetStreemForLoadingLayout(tag))
{
if (isoStream != null)
{
this.dock.LoadLayout(isoStream);
}
}
}
finally
{
saveLayoutControl.LoadingLayout = false;
}
However, in Dock_OnPaneStateChange (from your attached project):
...
this.Dispatcher.BeginInvoke(new Action(() =>
{
var tag = pane.Tag as string;
if (tag != null)
{
if (saveLayoutControl.LoadingLayout)
But I want to initialize ToolWindow size only when I float the RadPane from its docked (in a RADGroup) position; when I LoadLayout, I need to let the ToolWindow size unchanged (as it was saved with SaveLayout.)
As a minimum code I have:
saveLayoutControl.LoadingLayout = true;
try
{
using (var isoStream = saveLayoutControl.Model.GetStreemForLoadingLayout(tag))
{
if (isoStream != null)
{
this.dock.LoadLayout(isoStream);
}
}
}
finally
{
saveLayoutControl.LoadingLayout = false;
}
However, in Dock_OnPaneStateChange (from your attached project):
...
this.Dispatcher.BeginInvoke(new Action(() =>
{
var tag = pane.Tag as string;
if (tag != null)
{
if (saveLayoutControl.LoadingLayout)
...
LoadingLayout is false all the times, whatever initiated from the above code (with LoadLayout) or from undocking the RadDock control!
Looks like LoadLayout works asynchronously and I cannot know when the entire process ends!!!
LoadingLayout is false all the times, whatever initiated from the above code (with LoadLayout) or from undocking the RadDock control!
Looks like LoadLayout works asynchronously and I cannot know when the entire process ends!!!
0
Hi Horia,
I would suggest that you subscribe to LayoutChangeEnded event of the Docking control and set the LoadingLayout property to false in it as this event fires after PaneStateChange event. Note that as in your current code LoadingLayout should be set to true before LoadLayout method is called.
I hope this helps.
Regards,
Yana
Telerik
I would suggest that you subscribe to LayoutChangeEnded event of the Docking control and set the LoadingLayout property to false in it as this event fires after PaneStateChange event. Note that as in your current code LoadingLayout should be set to true before LoadLayout method is called.
I hope this helps.
Regards,
Yana
Telerik
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WPF.
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>