- Add RadRibbonForm - Set the radRibbonBar1 RightToLeft property to YES at design time - Close the designer and open it again -> another ribbon is showing up Workaround: done set the ribbon's RightToLeft property, just set the RightToLeft property of the form itself.
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: 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;
Workaround: create the ThemableColor this way SetBordersCommandParameter bordersParam = new SetBordersCommandParameter(); System.Drawing.Color color = Color.Blue; System.Windows.Media.Color mediaColor = System.Windows.Media.Color.FromArgb(color.A, color.R, color.G, color.B); bordersParam.BorderColor = new ThemableColor(mediaColor);
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
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); }
Workaround: Import using a stream.
Added in the R3 2018 release: https://docs.telerik.com/devtools/winforms/forms-and-dialogs/form-converter
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; } } }
Deleting table right after merged fields are updated causes StackOverflowException.
To reproduce:
- Open the Excel-like filtering example in the demo application and sort the second column.
- The sort icon is over the text.
Workaround:
private void RadGridView1_SortChanged(object sender, Telerik.WinControls.UI.GridViewCollectionChangedEventArgs e)
Environment: Telerik WinForms 2018.3.1016.40, VS 2013 Pro U5, Win 10 Ent 64 1809 17763.195
Steps:
Create a new WinForm project with default settings
Add a RadForm with default settings
Add a RadScrollablePanel to the RadForm with default settings
Add a RadPanel inside the RadScrollablePanel with default settings
Add a 3 RadRadioButtons to the RadScrollablePanel with default settings
Select all 3
Press Ctrl+X to cut the radio buttons.
Actual Result: Visual Studio will immediately hang and any unsaved project work will be lost.
Actual Desire: To be able cut and paste the 3 radio buttons into the RadPanel, just like normal MS WinForm controls in design-time.
Use attached to reproduce:
- click on the second tab
- collapse the first group
- click the first tab
- click the second tab, both grids are visible
Workaround:
public RadForm1()