Hi,
Saving and loading the layout works fine but I have noticed that I cannot add panes after I load a layout. The code below simply adds a floating pane to a RadPaneGroup which is declares statically in xaml:
RadPane newpane = new RadPane() { CanUserClose = false };
RadPaneGroup.AddItem(newpane, Telerik.Windows.Controls.Docking.DockPosition.Center);
newpane.MakeFloatingDockable();
This works fine until I load a layout. After that nothing seems to happen. What could be the problem?
Many thanks and best regards,
Tamás
Saving and loading the layout works fine but I have noticed that I cannot add panes after I load a layout. The code below simply adds a floating pane to a RadPaneGroup which is declares statically in xaml:
RadPane newpane = new RadPane() { CanUserClose = false };
RadPaneGroup.AddItem(newpane, Telerik.Windows.Controls.Docking.DockPosition.Center);
newpane.MakeFloatingDockable();
This works fine until I load a layout. After that nothing seems to happen. What could be the problem?
Many thanks and best regards,
Tamás
6 Answers, 1 is accepted
0
Hello Tamas,
George
the Telerik team
Could you please set a SerializationTag to the RadPaneGroups. Let me know if this resolves your issue. Also, if you send us a sample project that reproduces the problem, it would be very helpful.
I will be glad to assist you further.
George
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
Tamas
Top achievements
Rank 1
answered on 14 Oct 2010, 01:41 PM
Hi,
I have added a line to set the SerializationTag:
RadDocking.SetSerializationTag(newpane, System.Guid.NewGuid().ToString());
However I still cannot add new panes after the successful loading of layout. I'll try to prepare a sample project soon.
Thanks and best regards,
Tamas
I have added a line to set the SerializationTag:
RadDocking.SetSerializationTag(newpane, System.Guid.NewGuid().ToString());
However I still cannot add new panes after the successful loading of layout. I'll try to prepare a sample project soon.
Thanks and best regards,
Tamas
0
Hello Tamas,
George
the Telerik team
We will greatly appreciate a sample project of yours. It will definitely help us in further pinpointing and resolving the problem.
Looking forward for your reply.
George
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
Tamas
Top achievements
Rank 1
answered on 19 Oct 2010, 02:36 PM
Hi George,
Thanks for the follow up. I've made a simple project. The problem can be reproduced the following way:
- if you press the add container button, you'll see that adding a floating panel is working fine by default
- now dock the new floating panel somewhere
- save the layout
- add another container and dock it also
- load the layout: the previous layout will be loaded successfully
- now you cannot add containers anymore :(
Unfortunately I cannot attach zip files (maybe I just overlook something), so here is the code:
XAML:
CS:
Thanks and best regards,
Tamas
Thanks for the follow up. I've made a simple project. The problem can be reproduced the following way:
- if you press the add container button, you'll see that adding a floating panel is working fine by default
- now dock the new floating panel somewhere
- save the layout
- add another container and dock it also
- load the layout: the previous layout will be loaded successfully
- now you cannot add containers anymore :(
Unfortunately I cannot attach zip files (maybe I just overlook something), so here is the code:
XAML:
<
UserControl
x:Class
=
"RadDockingAddContainerIssue.MainPage"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
mc:Ignorable
=
"d"
d:DesignHeight
=
"300"
d:DesignWidth
=
"400"
>
<
Grid
x:Name
=
"LayoutRoot"
Background
=
"White"
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"30"
/>
<
RowDefinition
Height
=
"30"
/>
<
RowDefinition
Height
=
"30"
/>
<
RowDefinition
></
RowDefinition
>
</
Grid.RowDefinitions
>
<
Button
Grid.Row
=
"0"
Content
=
"Add container"
Click
=
"Button_Click"
/>
<
Button
Grid.Row
=
"1"
Content
=
"Save layout"
Click
=
"Button_Click_1"
/>
<
Button
Grid.Row
=
"2"
Content
=
"Load layout"
Click
=
"Button_Click_2"
/>
<
telerik:RadDocking
Grid.Row
=
"3"
Name
=
"RadDocking"
HasDocumentHost
=
"False"
>
<
telerik:RadSplitContainer
Name
=
"RadSplitContainer"
>
<
telerik:RadPaneGroup
Name
=
"RadPaneGroup"
>
</
telerik:RadPaneGroup
>
</
telerik:RadSplitContainer
>
</
telerik:RadDocking
>
</
Grid
>
</
UserControl
>
CS:
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Net;
using
System.Windows;
using
System.Windows.Controls;
using
System.Windows.Documents;
using
System.Windows.Input;
using
System.Windows.Media;
using
System.Windows.Media.Animation;
using
System.Windows.Shapes;
using
System.IO.IsolatedStorage;
using
Telerik.Windows.Controls;
using
System.IO;
namespace
RadDockingAddContainerIssue
{
public
partial
class
MainPage : UserControl
{
public
MainPage()
{
InitializeComponent();
CreateContainers();
}
private
void
CreateContainers()
{
RadPane newpane;
newpane =
new
RadPane() { CanUserClose =
false
}; RadDocking.SetSerializationTag(newpane, System.Guid.NewGuid().ToString());
RadPaneGroup.AddItem(newpane, Telerik.Windows.Controls.Docking.DockPosition.Left);
newpane =
new
RadPane() { CanUserClose =
false
}; RadDocking.SetSerializationTag(newpane, System.Guid.NewGuid().ToString());
RadPaneGroup.AddItem(newpane, Telerik.Windows.Controls.Docking.DockPosition.Center);
newpane =
new
RadPane() { CanUserClose =
false
}; RadDocking.SetSerializationTag(newpane, System.Guid.NewGuid().ToString());
RadPaneGroup.AddItem(newpane, Telerik.Windows.Controls.Docking.DockPosition.Right);
}
public
void
SaveLayout()
{
string
xml;
// Save your layout for example in the isolated storage.
using
(IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication())
{
using
(var isoStream = storage.OpenFile(
"RadDocking_Layout.xml"
, FileMode.OpenOrCreate))
{
this
.RadDocking.SaveLayout(isoStream);
/* isoStream.Seek(0, SeekOrigin.Begin);
StreamReader reader = new StreamReader(isoStream);
xml = reader.ReadToEnd();*/
}
}
}
public
void
LoadLayout()
{
// Load your layot from the isolated storage.
using
(IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication())
{
using
(var isoStream = storage.OpenFile(
"RadDocking_Layout.xml"
, FileMode.Open))
{
this
.RadDocking.LoadLayout(isoStream);
}
}
}
private
void
Button_Click(
object
sender, RoutedEventArgs e)
{
RadPane newpane =
new
RadPane() { CanUserClose =
false
};
RadPaneGroup.AddItem(newpane, Telerik.Windows.Controls.Docking.DockPosition.Center);
RadDocking.SetSerializationTag(newpane, System.Guid.NewGuid().ToString());
newpane.MakeFloatingDockable();
}
private
void
Button_Click_1(
object
sender, RoutedEventArgs e)
{
SaveLayout();
}
private
void
Button_Click_2(
object
sender, RoutedEventArgs e)
{
LoadLayout();
}
}
}
Thanks and best regards,
Tamas
0
Accepted
Hi Tamas,
For more information about saving the layout, I would suggest you to refer to our online documentation - http://www.telerik.com/help/silverlight/raddocking-save-load-the-content-of-the-panes.html
and http://www.telerik.com/help/silverlight/raddocking-features-save-load-layout.html
I hope this helps.
George
the Telerik team
I would suggest you to set serialization tag to the RadPaneGroup as well. This will resolve your issue. For example:
<
telerik:RadPaneGroup
Name
=
"RadPaneGroup"
telerik:RadDocking.SerializationTag
=
"paneGroup"
>
For more information about saving the layout, I would suggest you to refer to our online documentation - http://www.telerik.com/help/silverlight/raddocking-save-load-the-content-of-the-panes.html
and http://www.telerik.com/help/silverlight/raddocking-features-save-load-layout.html
I hope this helps.
George
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
Tamas
Top achievements
Rank 1
answered on 22 Oct 2010, 01:40 PM
Hi,
Now it works perfectly.
Many thanks and best regards,
Tamas
Now it works perfectly.
Many thanks and best regards,
Tamas