How to reproduce: enabled High DPI scaling and create a form as an MDI child with a RadDataEntry control in it
Workaround: handle the Shown event of the MDI child and manually perform the scaling
private void radButtonElement1_Click(object sender, EventArgs e)
{
var view = new RadForm1
{
MdiParent = this
};
view.Shown += View_Shown;
view.Show();
}
private void ScaleRadControls(Control c)
{
foreach (var item in c.Controls)
{
Control control = item as Control;
if (control == null)
{
continue;
}
this.mi.Invoke(control, new object[] { this.FormElement.DpiScaleFactor, BoundsSpecified.All });
ScaleRadControls(control);
}
}
MethodInfo mi;
private void View_Shown(object sender, EventArgs e)
{
this.mi = typeof(Control).GetMethod("ScaleControl", BindingFlags.Instance | BindingFlags.NonPublic, null, new Type[] { typeof(SizeF), typeof(BoundsSpecified) }, null);
RadForm1 v = sender as RadForm1;
if (v != null)
{
ScaleRadControls(v.radDataEntry1.PanelContainer);
}
}