How to reproduce: check the attached project Workaround: resize the size of the hosting RadPanel private void radCollapsiblePanel_Expanding(object sender, CancelEventArgs e) { this.radPanel1.Size = new Size(this.radPanel1.Size.Width, this.radPanel1.Size.Height - 1); } private void radCollapsiblePanel_Expanded(object sender, EventArgs e) { this.radPanel1.Size = new Size(this.radPanel1.Size.Width, this.radPanel1.Size.Height + 1); }
To reproduce: - Use the attached project. - Resize the panel to the left. - You will notice that the borders are cut off. Second scenario: refer to the 1016234GridInCollapsiblePanelVS2010.zip RadCollapsiblePanel1.ExpandDirection = Telerik.WinControls.UI.RadDirection.Right RadSplitContainer1.SplitPanels("SplitPanel2").SizeInfo.SizeMode = Telerik.WinControls.UI.Docking.SplitPanelSizeMode.Absolute RadSplitContainer1.SplitPanels("SplitPanel2").SizeInfo.AbsoluteSize = New System.Drawing.Size(637, 522) Workaround: manually update the collapsible panel`s size in the SplitterMoved event public WorkCenterScheduleAndStatusControl() { InitializeComponent(); this.radSplitContainer1.SplitterMoved += RadSplitContainer1_SplitterMoved; } private void RadSplitContainer1_SplitterMoved(object sender, SplitterEventArgs e) { this.radCollapsiblePanel1.Size = new Size(this.radCollapsiblePanel1.Size.Width, this.radCollapsiblePanel1.Size.Height - 1); this.radCollapsiblePanel1.Size = new Size(this.radCollapsiblePanel1.Width, this.radCollapsiblePanel1.Size.Height + 1); }
To reproduce: add RadCollapsiblePanel to RadLayoutControl, run it and collapse RadCollapsiblePanel => the expand/collapse button will get hidden Workaround: public SampleForm() { InitializeComponent(); radCollapsiblePanel1.AutoSize = false; radCollapsiblePanel1.Collapsed += radCollapsiblePanel1_Collapsed; radCollapsiblePanel1.Expanding += radCollapsiblePanel1_Expanding; radCollapsiblePanel1.Expanded += radCollapsiblePanel1_Expanded; } void radCollapsiblePanel1_Expanded(object sender, EventArgs e) { UpdateLayout(); } private void UpdateLayout() { radLayoutControl1.RootElement.InvalidateMeasure(true); radLayoutControl1.RootElement.UpdateLayout(); radCollapsiblePanel1.RootElement.InvalidateMeasure(true); radCollapsiblePanel1.RootElement.UpdateLayout(); } void radCollapsiblePanel1_Expanding(object sender, CancelEventArgs e) { radLayoutControl1.FindItemByControl(radCollapsiblePanel1).MaxSize = new Size(0, 0); radLayoutControl1.FindItemByControl(radCollapsiblePanel1).MaxSize = new Size(0, 0); UpdateLayout(); } void radCollapsiblePanel1_Collapsed(object sender, EventArgs e) { radLayoutControl1.FindItemByControl(radCollapsiblePanel1).MaxSize = new Size(31, 0); radLayoutControl1.FindItemByControl(radCollapsiblePanel1).MinSize = new Size(31, 0); UpdateLayout(); }
To reproduce: - Drop RadPopUpContainer from the toolbox on the windows form. Save the form. - Change the AllowAutomaticScrollToControl property value. - Save the form. Workaround: Set the property in code: RadScrollablePanel1.AllowAutomaticScrollToControl = false;
To reproduce: - Add a scrollable panel wit other controls in a form. - Show the form using the ShowDialog method. - Scroll to the bottom the close and show the form again - You will notice that the scrollbar is not shown and the controls at the top are not visible. Workaround: Protected Overrides Sub OnClosing(e As System.ComponentModel.CancelEventArgs) MyBase.OnClosing(e) RadScrollablePanel1.VerticalScrollbar.Value = 0 End Sub
To reproduce: - Add to collapsible panels to a form. - Dock the first to the top and set the Dock property of the second to Fill. - Set the ExpandDirection of the second to Up. - Start the application and collapse and then expand the second panel. - You will notice that the header button is no longer visible. Workaround: void radCollapsiblePanel1_Expanded(object sender, EventArgs e) { radCollapsiblePanel2.CollapsiblePanelElement.InvalidateMeasure(true); }
To reproduce: - Set the Localizable property of the form to true. - Change the header text of the collapsible panel.
To reproduce: radRadioButton1.Text = "<html><strong>Test</strong><strong> Test</strong></html>"; radRadioButton1.Enabled = false;
If you add a RadCollapsiblePanel to a form in design time, then add some child controls in its control container, then open the Document Outline window, you will see that the child controls are not visible in the Document Outline. Workaround: There is a workaround which involves creating an inherited RadCollapsiblePanel and assigning it with a custom designer: [Designer(typeof(MyCollapsiblePanelDesigner))] class MyCollapsiblePanel : RadCollapsiblePanel { public override string ThemeClassName { get { return typeof(RadCollapsiblePanel).FullName; } set { base.ThemeClassName = value; } } } class MyCollapsiblePanelDesigner : RadControlDesignerLite { public override void Initialize(System.ComponentModel.IComponent component) { base.Initialize(component); this.EnableDesignMode((this.Control as RadCollapsiblePanel).ControlsContainer, "ControlsContainer"); this.EnableDesignMode((this.Control as RadCollapsiblePanel).PanelContainer, "PanelContainer"); } public override ControlDesigner InternalControlDesigner(int internalControlIndex) { return this.DesignerHost.GetDesigner((this.Component as RadCollapsiblePanel).PanelContainer) as ControlDesigner; } public override int NumberOfInternalControlDesigners() { return 1; } protected override RadControlDesignerLiteActionList CreateActionList() { return new RadCollapsiblePanelActionList(this); } } Note that you would need to add references to the System.Design and Telerik.WinControls.UI.Design assemblies in order for the workaround to build. After you build it successfully, you can use the MyCollapsiblePanel component from your toolbox and you will be able to see the child controls in the document outline.
Sometimes when custom theme is used exception is thrown. Workaround: Switch to control default before switching to custom theme.
How to reproduce: this.radScrollablePanel1.PanelElement.BorderThickness = new Padding(0); Workaround: in order to hide the border of the RadScrollablePanel.PanelElement its Visiblity needs to be set to Hidden or Collapsed this.radScrollablePanel1.PanelElement.Border.Visibility = Telerik.WinControls.ElementVisibility.Hidden;
To reproduce: - Add a collapsible panel to ToolWindow. - Collapse the panel and redock the tool window. - The panel cannot be expanded any more. Workaround: List<Rectangle> list; void radDock1_DockStateChanging(object sender, Telerik.WinControls.UI.Docking.DockStateChangingEventArgs e) { list = new List<Rectangle>(); foreach (var item in e.NewWindow.Controls) { if (item is RadCollapsiblePanel) { list.Add(((RadCollapsiblePanel)item).OwnerBoundsCache); } } } void radDock1_DockStateChanged(object sender, Telerik.WinControls.UI.Docking.DockWindowEventArgs e) { int count = 0; foreach (var item in e.DockWindow.Controls) { if (item is RadCollapsiblePanel) { ((RadCollapsiblePanel)item).OwnerBoundsCache = list[count++]; } } }
To reproduce: - Put grid and collapsible panel to a form. - Set the Dock of the grid to fill. - Set the Dock of the panel to top. - Expand the panel, you will notice that the panel is drawn over the grid. Workaround: public RadForm1() { InitializeComponent(); radGridView1.Anchor = AnchorStyles.None; radCollapsiblePanel1.Dock = DockStyle.Top; radCollapsiblePanel1.EnableAnimation = false; radCollapsiblePanel1.Expanded += radCollapsiblePanel1_Expanded; radCollapsiblePanel1.Collapsed += radCollapsiblePanel1_Collapsed; gridSmallsize = new Size(this.Width - 10, this.Height - 190); gridLargeSize = new Size(this.Width - 10, this.Height - 60); } Size gridSmallsize; Size gridLargeSize; void radCollapsiblePanel1_Collapsed(object sender, EventArgs e) { radGridView1.Size = gridLargeSize; radGridView1.Location = new Point(0, 30); } void radCollapsiblePanel1_Expanded(object sender, EventArgs e) { radGridView1.Size = gridSmallsize; radGridView1.Location = new Point(0, 160); }
How to reproduce: CollapsiblePanelHeaderElement headerElement = this.radCollapsiblePanel1.CollapsiblePanelElement.HeaderElement; RadTextBoxElement txtBox = new RadTextBoxElement(); headerElement.Children.Add(txtBox); Workaround: use RadTextBoxControlElement
To reproduce: radCollapsiblePanel1.CollapsiblePanelElement.HeaderElement.HeaderButtonElement.MinSize = new Size(100, 100); Workaround: //resize the button this.menue.CollapsiblePanelElement.HeaderElement.MinSize = new Size(0, 50); this.menue.CollapsiblePanelElement.HeaderElement.HeaderButtonElement.MinSize = new Size(50, 50); this.menue.CollapsiblePanelElement.HeaderElement.HeaderButtonElement.MaxSize = Size.Empty; //refresh the control this.menue.EnableAnimation = false; this.menue.IsExpanded = !this.menue.IsExpanded; this.menue.IsExpanded = !this.menue.IsExpanded; this.menue.EnableAnimation = true;
To reproduce: add a RadCollapsiblePanel and insert several controls at run time with specifying the location and size of the inner controls. Set the ContentSizingMode property to CollapsiblePanelContentSizingMode.FitToContentHeight | CollapsiblePanelContentSizingMode.FitToContentWidth. When you run the application you will notice that the inner controls are cut off and the panel is not resized according to its content.
Workaround:
Before:

After:

public RadForm2()
{
InitializeComponent();
this.radCollapsiblePanel1.ContentSizingMode = CollapsiblePanelContentSizingMode.None;
}
private void RadForm2_Load(object sender, EventArgs e)
{
SizeF fillElementSize = this.radCollapsiblePanel1.Size;
int maxY = int.MinValue;
int maxX = int.MinValue;
int maxControlWidth = int.MinValue;
int maxControlHeight = int.MinValue;
bool fitToHeight = true;
bool fitToWidth = true;
Padding panelContainerPadding = this.radCollapsiblePanel1.ControlsContainer.PanelContainer.Padding;
foreach (Control control in this.radCollapsiblePanel1.ControlsContainer.PanelContainer.Controls)
{
if (fitToHeight)
{
maxY = Math.Max(maxY, control.Bounds.Location.Y + control.Bounds.Size.Height + control.Margin.Bottom + panelContainerPadding.Bottom +
this.radCollapsiblePanel1.ControlsContainer.VerticalScrollbar.Value);
maxControlWidth = Math.Max(maxControlWidth, control.Width);
}
if (fitToWidth)
{
maxX = Math.Max(maxX, control.Bounds.Location.X + control.Bounds.Size.Width + control.Margin.Right + panelContainerPadding.Right +
this.radCollapsiblePanel1.ControlsContainer.HorizontalScrollbar.Value);
maxControlHeight = Math.Max(maxControlHeight, control.Height);
}
}
if (fitToHeight)
{
bool horizontalScrollbarNeeded = fillElementSize.Width <= maxY + maxControlWidth;
if (horizontalScrollbarNeeded)
{
this.radCollapsiblePanel1.ControlsContainer.HorizontalScrollBarState = ScrollState.AlwaysHide;
}
else
{
this.radCollapsiblePanel1.ControlsContainer.HorizontalScrollBarState = ScrollState.AutoHide;
}
fillElementSize.Height = maxY;
}
if (fitToWidth)
{
bool verticalScrollbarNeeded = fillElementSize.Height <= maxX + maxControlHeight;
if (verticalScrollbarNeeded)
{
this.radCollapsiblePanel1.ControlsContainer.VerticalScrollBarState = ScrollState.AlwaysHide;
}
else
{
this.radCollapsiblePanel1.ControlsContainer.VerticalScrollBarState = ScrollState.AutoHide;
}
fillElementSize.Width = maxX;
}
fillElementSize.Height += this.radCollapsiblePanel1.CollapsiblePanelElement.HeaderElement.Size.Height + 5;
this.radCollapsiblePanel1.MinimumSize = this.radCollapsiblePanel1.MaximumSize = this.radCollapsiblePanel1.Size = fillElementSize.ToSize();
}
DECLINED: caused by the fact the form has been edited under different DPI settings. Workaround: specify the MinimumSize property at run time.
To reproduce: public Form1() { InitializeComponent(); for (int i = 0; i < 15; i++) { RadButton btn = new RadButton(); btn.Text = "Item" + i; btn.Dock = DockStyle.Bottom; this.radCollapsiblePanel1.PanelContainer.Controls.Add(btn); } } Please refer to the attached screenshot.
To reproduce: 1. Add a RadSplitContainer with two split panels. 2. Add a RadCollapsiblePanel to the left split panel and set the RadCollapsiblePanel.Dock property to Fill. 3. Add a RadGridView inside the RadCollapsiblePanel and set the RadGridView.Dock property to Fill. 4. Populate the grid with data. 5. Run the application and move the splitter to increase the RadCollapsiblePanel's size. The RadGridView is resized correctly. 6. Move the splitter to shrink the RadCollapsiblePanel. As a result the grid is not resized correctly. Workaround: Subscribe to the RadSplitContainer.SplitterMoved event and use the following code: this.RadCollapsiblePanel1.EnableAnimation = false; this.RadCollapsiblePanel1.IsExpanded = !this.RadCollapsiblePanel1.IsExpanded; this.RadCollapsiblePanel1.IsExpanded = !this.RadCollapsiblePanel1.IsExpanded; this.RadCollapsiblePanel1.EnableAnimation = true;
To reproduce: var stackPanel = new StackLayoutElement { Orientation = Orientation.Vertical }; stackPanel.Children.Add(new TextPrimitive { Text = "Demo" }); stackPanel.Children.Add(new TextPrimitive { Text = "Demo" }); Panel.PanelElement.Children.Add(stackPanel); Panel.AutoSize = true; // <= false works fine Workaund: - Put the panel in a control: public class MyControl : RadControl { protected override void CreateChildItems(RadElement parent) { base.CreateChildItems(parent); var stackPanel = new StackLayoutElement { Orientation = Orientation.Vertical }; stackPanel.Children.Add(new TextPrimitive { Text = "Demo" }); stackPanel.Children.Add(new TextPrimitive { Text = "Demo" }); parent.Children.Add(stackPanel); } protected override RootRadElement CreateRootElement() { RootRadElement root = base.CreateRootElement(); root.BackColor = Color.Transparent; return root; } }