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()
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;
I used RadPageView under the theme "VisualStudio2012LightTheme" .
The ViewMode of RadPageview is Stack.
I wanted to change the font size of page header in runtime but it was not workable.
If I changed the theme to VisualStudio2012DarkTheme or Office2013LightTheme, it worked fine.