Hello.
I try to display long description text with nice word wrapping using RadLabel.
To do that I set AutoSize=true but control Width of RadLabel setting MaximumSize.
I set the maximum size and recalculate it every time Form's size changes.
Everything works fine until you change the DPI settings in the system.
When you do this and change MaximumSize property at runtime my value will be multiplied by the scaling value.
And since I use form size (which is already scaled) I got doubled scale.
For example if I set scaling 150% my value be multiplied by 1.5.
Below I gave examples of my code and screenshots from different DPI.
100% https://clip2net.com/s/3YxZaSZ
150% https://clip2net.com/s/3YxZom6
200% https://clip2net.com/s/3YxZees
I use Telerik 2018.3.1016.20 with .Net 3.5
I very much rely on your help and advice.
using System;using System.Drawing;using Telerik.WinControls.UI;namespace DesignExamples.BugsForTelerik{ public class Form1 : RadForm { private RadLabel radLabel1; private RadLabel radLabel2; public Form1() { InitializeComponent(); } private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); this.radLabel1 = new Telerik.WinControls.UI.RadLabel(); this.radLabel2 = new Telerik.WinControls.UI.RadLabel(); ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.radLabel2)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this)).BeginInit(); this.SuspendLayout(); // // radLabel1 // this.radLabel1.Dock = System.Windows.Forms.DockStyle.Top; this.radLabel1.Location = new System.Drawing.Point(0, 0); this.radLabel1.Name = "radLabel1"; this.radLabel1.Size = new System.Drawing.Size(2054, 18); this.radLabel1.TabIndex = 0; this.radLabel1.Text = resources.GetString("radLabel1.Text"); // // radLabel2 // this.radLabel2.Dock = System.Windows.Forms.DockStyle.Top; this.radLabel2.Location = new System.Drawing.Point(0, 18); this.radLabel2.Name = "radLabel2"; this.radLabel2.Size = new System.Drawing.Size(81, 18); this.radLabel2.TabIndex = 1; this.radLabel2.Text = "MaximumSize: "; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(504, 270); this.Controls.Add(this.radLabel2); this.Controls.Add(this.radLabel1); this.Name = "Form1"; // // // this.RootElement.ApplyShapeToControl = true; this.Text = "Form1"; this.Resize += new System.EventHandler(this.OnResize); ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.radLabel2)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } private void OnResize(object sender, EventArgs e) { var maximumSize = new Size(Width - radLabel1.Margin.Horizontal, 0); radLabel1.MaximumSize = maximumSize; radLabel2.Text = $@"maximumSize: {maximumSize}radLabel1.MaximumSize: {radLabel1.MaximumSize}"; } }}