Workaround: manually resize the editor or drag it upwards
RadControls are slow when using at design time in a form containing a lot of controls, split containers and table layout panels
You will see that GraphicalView doesn't move but TextView loses task position and scrolls to the top.
Note that using mouse Scroll refreshes the correct position of TextView on the selected task.
public partial class RadForm1 : Telerik.WinControls.UI.RadForm
{
public RadForm1()
{
InitializeComponent();
this.SizeChanged += RadForm1_SizeChanged;
this.timer1.Start();
}
private void RadForm1_SizeChanged(object sender, EventArgs e)
{
this.Text = this.Size.ToString();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.WindowState = FormWindowState.Normal;
}
else
{
this.WindowState = FormWindowState.Minimized;
}
}
}
To reproduce: - Add RadLayoutControl to a form. - Change the Language property at design time. - You will receive the following message: There is already a command handler for the menu command '1496a755-94de-11d0-8c3f-00c04fc2aae2 : 103'. Workaround: - Reopen the designer.
To reproduce: add a RadLabel and change its cursor to Hand. this.radLabel1.Cursor = Cursors.Hand; The PixelatedHandCursor.png shows the poor quality of the cursor which should be improved. Workaround: https://stackoverflow.com/questions/6016995/un-antialiased-hand-cursor-in-windows-forms-apps/6017174#6017174 public class LinkLabelEx : RadLabel { private const int WM_SETCURSOR = 0x0020; private const int IDC_HAND = 32649; [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] private static extern IntPtr LoadCursor(IntPtr hInstance, int lpCursorName); [DllImport("user32.dll", CharSet = CharSet.Auto)] private static extern IntPtr SetCursor(IntPtr hCursor); protected override void WndProc(ref Message m) { if (m.Msg == WM_SETCURSOR) { // Set the cursor to use the system hand cursor SetCursor(LoadCursor(IntPtr.Zero, IDC_HAND)); // Indicate that the message has been handled m.Result = IntPtr.Zero; return; } base.WndProc(ref m); } } The ImprovedCursorRendering.png shows the improved cursor.
To reproduce: run the sample project, open the test.rtf file and start scrolling with the mouse. As a result, you will encounter the following error: ************** Exception Text ************** System.ArgumentException: Parameter is not valid. at System.Drawing.Image.get_RawFormat() at System.Drawing.Graphics.IgnoreMetafileErrors(Image image, Int32& errorStatus) at System.Drawing.Graphics.DrawImage(Image image, Single x, Single y, Single width, Single height) at System.Drawing.Graphics.DrawImage(Image image, RectangleF rect) at Telerik.WinControls.RichTextEditor.UI.GDIPaintingContext.DrawImage(Image image, RectangleF rectangle, Double opacity) at Telerik.WinControls.RichTextEditor.UI.Image.PaintCore(IPaintingContext context) at Telerik.WinControls.RichTextEditor.UI.UIElement.Paint(IPaintingContext context) at Telerik.WinControls.RichTextEditor.UI.FrameworkElement.PaintElement(IGraphics graphics, Single angle, SizeF scale) at Telerik.WinControls.RadElement.DoOwnPaint(IGraphics graphics, Single angle, SizeF scale) at Telerik.WinControls.RadElement.Paint(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintOverride(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintChild(RadElement child, IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.VisualElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.Paint(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintOverride(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintChild(RadElement child, IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.VisualElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.Paint(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintOverride(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintChild(RadElement child, IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.VisualElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.Paint(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintOverride(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintChild(RadElement child, IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.VisualElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.Paint(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintOverride(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintChild(RadElement child, IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.VisualElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.Paint(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintOverride(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintChild(RadElement child, IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.VisualElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.Paint(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintOverride(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintChild(RadElement child, IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.VisualElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadElement.Paint(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadItem.PaintOverride(IGraphics screenRadGraphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation) at Telerik.WinControls.RadControl.OnPaint(PaintEventArgs e) at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer) at System.Windows.Forms.Control.WmPaint(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at Telerik.WinControls.RadControl.WndProc(Message& m) at Telerik.WinControls.UI.RadRichTextEditor.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Workaround: manually increase the font of the controls protected override void OnShown(EventArgs e) { base.OnShown(e); var dpi = NativeMethods.GetSystemDpi(); this.Font = new Font(this.Font.Name, this.Font.Size * dpi.X / 96, this.Font.Style); this.radMenu1.Font = new Font(this.radMenu1.Font.Name, this.radMenu1.Font.Size * dpi.X / 96, this.radMenu1.Font.Style); this.radCommandBar1.Font = new Font(this.radCommandBar1.Font.Name, this.radCommandBar1.Font.Size * dpi.X / 96, this.radCommandBar1.Font.Style); }
The performance of the DayView when the control is bound to a large number of recurring appointments and it is grouped by resources needs to be improved.
How to reproduce: check the attached video Workaround: select a color from a different tab or use the color picker
Project Update Utility throws unhandled exception when you try to upgrade project which files are not checked-out from source control.
Workaround: this.radChat1.ChatElement.InputTextBox.TextBoxItem.TextBoxControl.Multiline = true; this.radChat1.ChatElement.InputTextBox.ButtonsStack.Children.Remove(this.radChat1.ChatElement.ShowToolbarButtonElement); this.radChat1.ChatElement.InputTextBox.ButtonsStack.Children.Remove(this.radChat1.ChatElement.SendButtonElement); StackLayoutElement stack = new StackLayoutElement(); stack.MinSize = new Size(0, 60); this.radChat1.ChatElement.InputTextBox.Parent.Children.Add(stack); this.radChat1.ChatElement.InputTextBox.Parent.Children.Remove(this.radChat1.ChatElement.InputTextBox); stack.StretchHorizontally = true; stack.Orientation = Orientation.Horizontal; stack.Children.Add(this.radChat1.ChatElement.InputTextBox); stack.Children.Add(this.radChat1.ChatElement.ShowToolbarButtonElement); stack.Children.Add(this.radChat1.ChatElement.SendButtonElement); this.radChat1.ChatElement.ShowToolbarButtonElement.StretchHorizontally = false; this.radChat1.ChatElement.SendButtonElement.StretchHorizontally = false;
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); } }
To reproduce:
-Open the FileExplorer example.
- Resize the panel (see attached).
Use attached to reproduce.
Workaround:
public RadForm1()
Use the attached sample project.
Sceen 1 (Screen with program shortcuts) on the right in the gif: this screen has display scale 125%
Screen 2 (Screen with the Form) on the left in the gif: this screen has display scale 100%
When all three toolwindows are placed in the forms, there is no issue. The Dropdown list of ToolWindow1 (floating, dockable..) when opened is placed correctly.
If I moved the ToolWindow3 from Screen2 to Screen1 and make it the most recent active window (by clicking on it), I go back to the Screen2 and open the dropdown list of Toolwindow1, this list's position is now wrong and the text size bigger. This is because it takes the display scale (125%) of the screen where the most recent active toolwindow (ToolWindow3 ) is.
If I popup the ToolWindow2, place it in Screen2 (the same screen with ToolWindow1), make ToolWindow2 the most recent active window, and open the dropdown list of Toolwindow1, this list's position is now correct and the text size normal. This is because it takes the display scale (100%) of the screen where the most recent active toolwindow (ToolWindow2 ) is.
Workaround: add app.manifest file and declare the application as DPI aware: