This question is locked. New answers and comments are not allowed.
Hi ,
1. When two or more pane in one group and they are floating,you click the "x" to close a pane, all the panes in the group will disappear. I just want to close the current one.
2. Upinned a pane, hover over it to expand the pane,then click the "x" to close the pane.The pane is still there,until you pined it, it will disappear.
I handled the PreviewClose event, and will execute close in this event. My code is below.
please help me!
RadControls for Silverlight Q2 2010 SP2
Microsoft Silverlight Version: 4.0.50917.0
Microsoft Visual Studio 2010 Version 10.0.30319.1 RTMRel
Microsoft .NET Framework Version 4.0.30319 RTMRel
xaml code
c# code
1. When two or more pane in one group and they are floating,you click the "x" to close a pane, all the panes in the group will disappear. I just want to close the current one.
2. Upinned a pane, hover over it to expand the pane,then click the "x" to close the pane.The pane is still there,until you pined it, it will disappear.
I handled the PreviewClose event, and will execute close in this event. My code is below.
please help me!
RadControls for Silverlight Q2 2010 SP2
Microsoft Silverlight Version: 4.0.50917.0
Microsoft Visual Studio 2010 Version 10.0.30319.1 RTMRel
Microsoft .NET Framework Version 4.0.30319 RTMRel
xaml code
<UserControl x:Class="DockingPane.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"> <telerik:RadDocking x:Name="DockingControl" PreviewClose="OnPreClose"> <telerik:RadSplitContainer> <telerik:RadPaneGroup> <telerik:RadPane Header="Description"> <TextBlock TextWrapping="Wrap" Text="On the Documents tab above press Ctrl + Mouse Left button to display the Popup Menu. You can use the same combination on every tab."/> </telerik:RadPane> </telerik:RadPaneGroup> </telerik:RadSplitContainer> <telerik:RadSplitContainer InitialPosition="DockedLeft"> <telerik:RadPaneGroup> <telerik:RadPane Header="Toolbox"/> </telerik:RadPaneGroup> </telerik:RadSplitContainer> <telerik:RadSplitContainer InitialPosition="DockedLeft"> <telerik:RadPaneGroup> <telerik:RadPane Header="Toolbox"/> </telerik:RadPaneGroup> </telerik:RadSplitContainer> <telerik:RadSplitContainer InitialPosition="DockedLeft"> <telerik:RadPaneGroup> <telerik:RadPane Header="Toolbox"/> </telerik:RadPaneGroup> </telerik:RadSplitContainer> <telerik:RadSplitContainer InitialPosition="DockedLeft"> <telerik:RadPaneGroup> <telerik:RadPane Header="Toolbox"/> </telerik:RadPaneGroup> </telerik:RadSplitContainer> <telerik:RadSplitContainer InitialPosition="DockedRight"> <telerik:RadPaneGroup> <telerik:RadPane Header="Properties"/> <telerik:RadPane Header="Solution Explorer"/> </telerik:RadPaneGroup> </telerik:RadSplitContainer> </telerik:RadDocking> </Grid></UserControl>c# code
using System.Collections.Generic;using System.Windows;using System.Windows.Controls;using Telerik.Windows.Controls;using Telerik.Windows.Controls.Docking;namespace DockingPane{ public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); } private void OnPreClose(object sender, Telerik.Windows.Controls.Docking.StateChangeEventArgs e) { e.Handled = true; IEnumerator<RadPane> ie = e.Panes.GetEnumerator(); ie.MoveNext(); RadPane pane = ie.Current; RadPaneGroup paneGroup = pane.PaneGroup; RadSplitContainer rsc = paneGroup.ParentContainer; int count0 = DockingControl.Items.Count; //If two or more pane in one PaneGroup or SplitContainer,just remove the pane from its parent. if (paneGroup.ChildrenOfType<RadPane>().Count > 1) { pane.RemoveFromParent(); } else if (rsc.ChildrenOfType<RadPane>().Count > 1) { pane.RemoveFromParent(); } else { if (rsc.IsInToolWindow) { //Remove the ToolWindow when the pane is floating. ToolWindow tw = rsc.ParentOfType<ToolWindow>(); Canvas canvas = tw.Parent as Canvas; canvas.Children.Remove(tw); } else { DockingControl.Items.Remove(rsc); } } int count = DockingControl.Items.Count; // Remove the RadSplitContainer from DockingControl. foreach (UIElement element in DockingControl.Items) { RadSplitContainer sc = element as RadSplitContainer; if (sc.ChildrenOfType<RadPane>().Count < 1) { DockingControl.Items.Remove(element); break; } } } }}