When a set of RadForms is used inside an MDI Form and are maximized, after some time, the child forms flicker continuously.
See the attached video.
The same behaviour DOES NOT happen when regular Windows Form is used.
The issue exists in Fluent, Material, and Crystal themes.
To reproduce:
Create an MDI application and maximize the child form.
The child form buttons are not styled.
Dear Admins.
I'm developing an application which have Parent (MDI) and some child forms.
Using Telerik UI for WinForms R2 2019 SP1.
Code for Opening the Form.
01.
private
void
MnuItemSuppliers_Click(
object
sender, EventArgs e)
02.
{
03.
if
(!IsFormOpen(
typeof
(frmSupplierList)))
04.
{
05.
CloseChildForm();
06.
frmSupplierList m_frmListSupplier =
new
frmSupplierList
07.
{
08.
Width =
this
.Width,
09.
Height =
this
.Height,
10.
MdiParent =
this
,
11.
MaximizeBox =
false
,
12.
MinimizeBox =
false
,
13.
ControlBox =
false
,
14.
WindowState = FormWindowState.Maximized
15.
};
16.
m_frmListSupplier.Show();
17.
}
18.
}
But Still i can see the ControlBox and Minimize and Maximize Buttons on the Top right Corner.
Image Attached.
When i Use the Same Coding and Properties using Standard Windows Forms. It behave like as required.
Please help what is wrong with this.
A possible workaround is to set the RadControl.EnableDpiScaling property to false. static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { RadControl.EnableDpiScaling = false; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new RadForm1()); } } Another workaround is to mark the application as DPI-aware: https://docs.telerik.com/devtools/winforms/telerik-presentation-framework/dpi-support
Use attached to reproduce.
Hi
Please note that I have installed trial version of telerik ui winforms desktop. The problem now is when I open the child page it always takes minimum 4 seconds to load.The child page just contains the radgridview and loads just 6000records.
We are not satisfying with this performance.
Based on the support we will decide to purchase this tool.
We need your assistance asap.
1.download and install the telerik trial version for ui winforms for desktop latest version 2019. 219.
2.open new project with blank template.
3.create radform and set Radform1 as mdi form. And open a child page from this..
CHild page takes 4 seconds to load. Though child page has only grid view and loads only 6000 records
Thanks
Sathish.
Description: Text alignment of the title bar caption can not be changed. this.FormElement.TitleBar.TitlePrimitive.Alignment = ContentAlignment.MiddleCenter;
Use attached to reproduce. Case 1 - the initial scaling is not correct and the showing dilog1 results in a different DPI each time. Case 2 - the AllowTheming property disabled the scaling - see dialog 2. Workaround: this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); public class MyRadForm : RadForm { protected override void HandleDpiChanged() { if (TelerikHelper.IsWindows10CreatorsUpdateOrHigher) { return; } base.HandleDpiChanged(); } }
To reproduce: Create a RadForm, select a material theme from the ToolBox, and apply the theme to the Form. Set the size of the Form to anything simple like (300, 300) and then save and close out the Form. When you reopen the same Form it will grow to (304, 302). Please refer to the attached gif file. Workaround: set the size at run time.
To reproduce: - Set the icon of the form. - Set the FormBorderStyle to FixedToolWindow. - The default icon is displayed in the taskbar. Workaround: public RadForm2() { InitializeComponent(); this.ShowIcon = true; } protected override void OnShown(EventArgs e) { base.OnShown(e); this.FormElement.TitleBar.IconPrimitive.Visibility = ElementVisibility.Collapsed; }
To reproduce: 1. Create a RadForm - Form1 2. Change its BackColor at design time 3. Create another RadForm - Form2 4. Open it at design time. It is expected to have the BackColor coming from the parent form. Workaround: Set the color in the form's constructor instead of at design time.
Use attached to reproduce. This was working in version 2017.1.221 Workaround: private void Instance_LocationChanged(object sender, EventArgs e) { var box = sender as RadMessageBoxForm; box.Location = new Point((this.Location.X + this.Width / 2) - (box.Width/2), (this.Location.Y + this.Height / 2 )- (box.Height/2)); }
How to reproduce: create a DPI-aware application and set the AllowAero property of the ribbon form to false, the titlebar will not be themed Workaround: override the ScaleControl method of in the RadRibbonForm instance in the project Protected Overrides Sub ScaleControl(ByVal factor As SizeF, ByVal specified As BoundsSpecified) MyBase.ScaleControl(factor, specified) If Me.HasOwnToolbar AndAlso Me.AllowTheming AndAlso Not Me.IsDesignMode AndAlso Me.IsInitialized Then Me.AllowTheming = False End If End Sub
Workaround: Sub New() InitializeComponent() AddHandler RadMessageBox.Instance.LocationChanged, AddressOf MsgLocationChanged End Sub Private Sub MsgLocationChanged(sender As Object, e As EventArgs) RadMessageBox.Instance.Location = New Point(Me.Location.X + Me.Width / 2 - RadMessageBox.Instance.Width / 2, _ Me.Location.Y + Me.Height / 2) End Sub
Use attached to reproduce. The exception message: "A circular control reference has been made. A control cannot be owned by or parented to itself.". Workaround: Do not specify the owner when showing the message box.
Workaround: Sub New() InitializeComponent() AddHandler RadMessageBox.Instance.LocationChanged, AddressOf MsgLocationChanged End Sub Private Sub RadTreeView1_NodeMouseClick(sender As Object, e As Telerik.WinControls.UI.RadTreeViewEventArgs) Handles RadTreeView1.NodeMouseClick If RadMessageBox.Show(Me, String.Format("Change Project to {0}{1}{0}?", Chr(34), e.Node.Text), "Change Project", MessageBoxButtons.YesNo, _ RadMessageIcon.Question, MessageBoxDefaultButton.Button1) = Windows.Forms.DialogResult.Yes Then End If End Sub Private Sub MsgLocationChanged(sender As Object, e As EventArgs) RadMessageBox.Instance.Location = New Point(Me.Location.X + Me.Width / 2, Me.Location.Y + Me.Height / 2) End Sub
Workaround: change all RadForms to inherit the following custom base form public class RadFormBase : RadForm { protected override void OnLoad(EventArgs e) { if (this.IsDesignMode) { this.BackColor = Color.Empty; } base.OnLoad(e); } public override Color BackColor { get { return this.ElementTree.RootElement.BackColor; } set { if (value == Color.Empty) { this.ElementTree.RootElement.ResetValue(VisualElement.BackColorProperty, ValueResetFlags.Local); } else { this.ElementTree.RootElement.BackColor = value; } } } }
To reproduce: run the attached sample project and refer to the screenshot. Workaround: ((TextPrimitive)this.FormElement.TitleBar.CaptionElement).UseCompatibleTextRendering=true; or set the RadForm.AllowTheming property to false.
Steps to reproduce: 1. Create an application with RadForm and few controls under .Net 4.7 2. Start the application on 4K monitor (primary screen) with high DPI (200-percent scale) 3. The form is not scaled correctly. Windows do not send the message that the scale factor is changed. The issue is observed when the form is initially starting on high DPI (125-percent or higher).