Completed
Last Updated: 04 Feb 2022 13:39 by ADMIN
Release R1 2022 SP1
Jørn
Created on: 25 Jan 2022 09:18
Category: TabbedForm
Type: Bug Report
0
RadTabbedForm: Anchored children are resized/relocated in Design mode
Each time I open design view all my my anchored controls heights are increased.
1 comment
ADMIN
Hristo
Posted on: 26 Jan 2022 13:09

Hello Jørn,

We are investigating the issue and a possible fix is being tested. Likely we will be able to resolve the item and include the fix in service pack after one month or even earlier as part of some internal lib.

There is also a workaround which you could test. It is necessary to go into the designer file of your form and change the RadTabbedFormControl instance with the following custom implementation: 

// ...
// Inside the .designer.cs file of your form
this.radTabbedFormControl1 = new MyRadTabbedFormControl();
//...
public class MyRadTabbedFormControl : RadTabbedFormControl
{
    public override string ThemeClassName
    {
        get
        {
            return typeof(RadTabbedFormControl).FullName;
        }
    }

    protected override void CreateChildItems(RadElement parent)
    { 
        RadTabbedFormControlElement mainElement = new MyRadTabbedFormControlElement();

        typeof(RadTabbedFormControl).GetField("tabbedFormControlElement", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(this, mainElement);
        typeof(RadTabbedFormControlElement).GetField("owner", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(mainElement, this);

        this.RootElement.Children.Add(mainElement);

        this.RootElement.Name = this.Name;
    }
}

public class MyRadTabbedFormControlElement : RadTabbedFormControlElement
{
    protected override Type ThemeEffectiveType
    {
        get
        {
            return typeof(RadTabbedFormControlElement);
        }
    }

    protected override void UpdateTabBounds(RadTabbedFormControlTab tab)
    {
        if (this.ElementState != ElementState.Loaded)
        {
            return;
        }

        Rectangle contentAreaBoundingRect = this.GetContentAreaRectangle();
        Rectangle contentRect = this.OffsetTabContent(contentAreaBoundingRect);

        if (contentRect.Width <= 0 || contentRect.Height <= 0)
        {
            return;
        }

        base.UpdateTabBounds(tab);
    }
}

With the above workaround, the controls don't change their location and sizes on opening the form. I hope that you could use it as a temporary solution.

Hristo
Progress Telerik

Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.