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)
Sometimes when copying from word is duplicating some parts of the text.
1 - Open the Telerik WinForms Demo Application;
2 - Go to RichTextEditor;
3 - Click on First Look;
4 - Delete All the text (Ctrl + A then Delete);
5 - Open the word document Attached;
6 - Select Everything (Ctrl + A) and copy;
7 - Paste on the RichTextEditor;
8 - The end of the second paragraph is duplicated;
To reproduce:
- Set the MaxDropDownItems and the DefaultItemsCountInDropDown and open the popup on HDPI.
When the current SpanLayoutBox is split (for example by inserting space), the DocumentPosition created with trackDocumentChangeEvents option (with some of the constructor accepting the boolean 'trackDocumentChangeEvents' parameter) jumps back with two symbols.
How to reproduce: test the attached project with the latest version on a Windows 7 machine, notice that the font sizes are scaled, test the project with assemblies before R2 2017 the fonts are not scaled The issue is observed even with the RadControl.EnableDpiScaling property set to false. It would be expected that if the property was set to false, that the fonts would not be increased. Workaround: change the fonts for each of the controls individually, the scaling can be calculated this way: Protected Overrides Sub OnShown(e As EventArgs) MyBase.OnShown(e) Dim dpi = NativeMethods.GetSystemDpi() Dim scale = dpi.X / 96.0 End Sub
How to reproduce: create the following custom cell and notice that the collapsed elements would still occupy space inside the cell. Check the attached screenshot public class PNUDFCellElement : GridDataCellElement { public PNUDFCellElement(GridViewColumn column, GridRowElement row) : base(column, row) { } private CustomStackLayoutElement stack; private RadDropDownListElement radDropDownListElement; private RadDateTimeEditorElement radDateTimeEditorElement; private RadTextBoxControlElement radTextBoxElement; protected override void CreateChildElements() { base.CreateChildElements(); stack = new CustomStackLayoutElement(); stack.StretchHorizontally = true; stack.Orientation = Orientation.Horizontal; radDropDownListElement = new RadDropDownListElement(); radDropDownListElement.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; radDropDownListElement.StretchHorizontally = true; radDateTimeEditorElement = new RadDateTimeEditorElement(); radDateTimeEditorElement.StretchHorizontally = true; radTextBoxElement = new RadTextBoxControlElement(); radTextBoxElement.StretchHorizontally = true; stack.Children.Add(radDropDownListElement); stack.Children.Add(radDateTimeEditorElement); stack.Children.Add(radTextBoxElement); this.Children.Add(stack); } protected override void SetContentCore(object value) { this.radDropDownListElement.Visibility = Telerik.WinControls.ElementVisibility.Collapsed; this.radTextBoxElement.Visibility = Telerik.WinControls.ElementVisibility.Collapsed; this.radDateTimeEditorElement.Visibility = Telerik.WinControls.ElementVisibility.Collapsed; this.DrawText = false; if (this.RowIndex % 3 == 0) { this.radDropDownListElement.Visibility = Telerik.WinControls.ElementVisibility.Visible; this.radDropDownListElement.Text = this.Value + ""; } else if (this.RowIndex % 3 == 1) { this.radTextBoxElement.Visibility = Telerik.WinControls.ElementVisibility.Visible; this.radTextBoxElement.Text = this.Value + ""; } else { this.radDateTimeEditorElement.Visibility = Telerik.WinControls.ElementVisibility.Visible; } base.SetContentCore(value); } } public class CustomDataColumn : GridViewDataColumn { public CustomDataColumn(string fieldName) : base(fieldName) { } public override Type GetCellType(GridViewRowInfo row) { if (row is GridViewDataRowInfo) { return typeof(PNUDFCellElement); } return base.GetCellType(row); } } Workaround: use a custom StackLayoutElemetn public class CustomStackLayoutElement : StackLayoutElement { protected override void ArrangeHorizontally(SizeF finalSize) { RectangleF clientRect = this.GetClientRectangle(finalSize); float stretchableWidth = 0; int stretchableCount = 0; int nonStretchableItems = 0; foreach (RadElement element in this.Children) { if (element.Visibility == ElementVisibility.Collapsed) { continue; } if (element.StretchHorizontally) { stretchableCount++; } else { stretchableWidth += element.DesiredSize.Width; nonStretchableItems++; } } if (nonStretchableItems > 0) { stretchableWidth += ElementSpacing * (nonStretchableItems - 1); } int spacing = this.ElementSpacing; if (stretchableCount > 0) { stretchableWidth = (clientRect.Width - stretchableWidth) / stretchableCount; stretchableWidth -= spacing * stretchableCount; } ArrangeItemsHorizontaly(clientRect, finalSize, stretchableWidth, spacing); } protected override void ArrangeItemsHorizontaly(RectangleF clientRect, SizeF finalSize, float stretchableWidth, float spacing) { float x = clientRect.X; float y = clientRect.Y; List<RadElement> children = new List<RadElement>(this.Children); if (this.Comparer != null) { children.Sort(this.Comparer); } for (int i = 0; i < children.Count; i++) { RadElement element = null; if (this.RightToLeft && this.RightToLeftMode == RightToLeftModes.ReverseItems) { element = children[children.Count - i - 1]; } else { element = children[i]; } if (element.Visibility == ElementVisibility.Collapsed) { continue; } RectangleF proposedRect = new RectangleF(x, y, stretchableWidth, clientRect.Height); RectangleF finalRect = AlignRect(element, proposedRect); if (this.RightToLeft && this.RightToLeftMode == RightToLeftModes.ReverseOffset) { finalRect.X = finalSize.Width - x - finalRect.Width; } this.ArrangeElement(element, clientRect, finalRect, finalSize); x += finalRect.Width + spacing; } } }
Added in the R3 2018 release: https://docs.telerik.com/devtools/winforms/forms-and-dialogs/form-converter
Workaround: Import using a stream.
To reproduce: public RadForm1() { InitializeComponent(); var a = new Author(null, "John"); for (int i = 0; i < 20; i++) { radChat1.AddMessage(new ChatTextMessage("Item" + i, a, DateTime.Now.AddDays(-(20 - i)))); } new Telerik.WinControls.RadControlSpy.RadControlSpyForm().Show(); this.radChat1.ChatElement.MessagesViewElement.TimeSeparatorInterval = TimeSpan.FromDays(1); } You will notice that there is today in several places. Workaround: this.radChat1.ChatElement.MessagesViewElement.TimeSeparatorInterval = TimeSpan.Zero; var a = new Author(null, "Forest Gump"); for (int i = 0; i < 20; i++) { radChat1.AddMessage(new ChatTextMessage("Item" + i, a, DateTime.Now.AddDays(-(20 - i)))); ChatTimeSeparatorDataItem separator = new ChatTimeSeparatorDataItem(new ChatTimeSeparatorMessage(DateTime.Now.AddDays(-(20 - i)))); radChat1.ChatElement.MessagesViewElement.Items.Add(separator); }
Note: other operations that affect the image's size should also handle large images. No Workaround. It is possible to create a custom resize dialog as follows: public class MyRadImageEditor : RadImageEditor { protected override RadImageEditorElement CreateImageEditorElement() { return new MyRadImageEditorElement(); } } public class MyRadImageEditorElement : RadImageEditorElement { public override void ShowResizeDialog() { this.ShowDialog(typeof(MyResizeDialog)); } } public class MyResizeDialog : RadForm { public MyResizeDialog(RadImageEditorElement imageEditorElement) { } //TODO custom dialog }
How to reproduce: 1. Use the following code to change the default style of the document: StyleDefinition h2 = this.radRichTextBox.Document.Style; h2.SpanProperties.FontFamily = new System.Windows.Media.FontFamily("Microsoft Sans Serif"); h2.SpanProperties.FontSize = Unit.PointToDip(8.25f); h2.ParagraphProperties.SpacingAfter = 0; h2 = radRichTextBox.Document.Style; h2.SpanProperties.FontFamily = new System.Windows.Media.FontFamily("Microsoft Sans Serif"); h2.SpanProperties.FontSize = Unit.PointToDip(8.25f); h2.ParagraphProperties.SpacingAfter = 0; StyleDefinition hyperlinkStyle = this.radRichTextBox.Document.StyleRepository["Hyperlink"]; hyperlinkStyle.SpanProperties.FontFamily = new System.Windows.Media.FontFamily("Microsoft Sans Serif"); hyperlinkStyle.SpanProperties.FontSize = Unit.PointToDip(8.25f); 2. Add some text to the document 3. Add a hyperlink somewhere in the middle of the text 4. Start moving the caret so it moves over the hyperlink start Observed: When on hyperlink start/end, the caret is with bigger size than the content Expected: The caret should be with the size of the content
How to reproduce: this.radTrackBar1.LabelStyle = Telerik.WinControls.UI.TrackBarLabelStyle.TopLeft; this.radTrackBar1.TickStyle = Telerik.WinControls.Enumerations.TickStyles.TopLeft; Workaround: this.radTrackBar1.LabelStyle = Telerik.WinControls.UI.TrackBarLabelStyle.TopLeft; this.radTrackBar1.TrackBarElement.BodyElement.ScaleContainerElement.BottomScaleElement.Visibility = ElementVisibility.Collapsed;
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.