The following parts are with hard coded strings and cannot be localized: - Insert Caption (InsertCaptionDialog): Combo boxes for label and separator - Paragraph Properties (ParagraphPropertiesDialog): Units of spacing and indentation values (pt) - Tab Stops Properties (TabStopsPropertiesDialog): The text of the tabStopsToBeClearedTextBloc - Cross references: reference types Figure and Table - TOC and TOF: Heading and Figure, Caption labels - Document Ruler: Tooltips - FormattingColorPicker: The "No Color" string - ManageStylesDialog shows items "Modify" and "Delete" with hardcoded text.
Create different options for pasting (keep formatting, merge formatting, use destination styles). At this point, the document default styles are not copied in the document fragment, thus their loss is observed. Loss of formatting is also observed when: - copying from RadRichTextBox and pasting in Word - copying from RadRichTextBox and pasting in RadRichTextBox in another process. - copying from Word and pasting in RadRichTextBox
How to reproduce: check the attached video
How to reproduce: set the page view in backstage, add a page item and set its text to be very long Workaround: use the custom theme
How to reproduce: create a document like the one below, then try to add a comment for an element in the paragraph with the bookmarks
Public Class Form2
Sub New()
InitializeComponent()
Dim document As New RadDocument()
Dim section As New Section()
Dim paragraph As New Paragraph()
Dim span As New Span("Content prior range[")
Dim span2 As New Span("]Content after range")
Dim readOnlyContent As New Span("READ ONLY")
Dim rangeStart As New ReadOnlyRangeStart()
Dim rangeEnd As New ReadOnlyRangeEnd()
rangeEnd.PairWithStart(rangeStart)
paragraph.Inlines.Add(span)
paragraph.Inlines.Add(rangeStart)
paragraph.Inlines.Add(readOnlyContent)
paragraph.Inlines.Add(rangeEnd)
paragraph.Inlines.Add(span2)
section.Blocks.Add(paragraph)
document.Sections.Add(section)
Dim bmSection As New Section()
Dim bmParagraph As New Paragraph()
Dim bmSpan As New Span("Content prior bookmark[")
Dim bmSpan2 As New Span("]Content after bookmark")
Dim bmContent As New Span("Content in Bookmark")
Dim bmRangeEnd As New BookmarkRangeEnd()
Dim bmRangeStart = DirectCast(bmRangeEnd.CreatePairedStart(), BookmarkRangeStart)
bmRangeStart.Name = System.Guid.NewGuid().ToString()
bmParagraph.Inlines.Add(bmSpan)
bmParagraph.Inlines.Add(bmRangeStart)
bmParagraph.Inlines.Add(bmContent)
bmParagraph.Inlines.Add(bmRangeEnd)
bmParagraph.Inlines.Add(bmSpan2)
bmSection.Blocks.Add(bmParagraph)
document.Sections.Add(bmSection)
Me.RadRichTextEditor1.Document = document
End Sub
End Class
Steps to reproduce:
1. Use the following code snippet:
public partial class Form1 : RadForm
{
public Form1()
{
InitializeComponent();
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.radRichTextEditor1.Document = ImportDocx(@"..\..\lorem.docx");
this.radRichTextEditor1.LayoutMode = DocumentLayoutMode.Paged;
this.radRichTextEditor1.ChangeSectionPageSize(PaperTypeConverter.ToSize(PaperTypes.A3));
this.radRichTextEditor1.ChangeSectionPageOrientation(PageOrientation.Landscape);
}
private void radButton1_Click_1(object sender, EventArgs e)
{
this.radRichTextEditor1.PrintPreview();
}
private void radButton3_Click(object sender, EventArgs e)
{
this.radRichTextEditor1.Print(true);
}
}
Calling the PrintPreview method, the page orientation is updated in PrintSettingDialog. However, the page size is not updated correctly. As result, the printed document is not correct.
If you call the Print method, the page size and orientation are not updated and the document is printed as in A4/Portrait instead A3/Landscape.
Workaround:
Use RadPrintDocument:
private void radButton2_Click(object sender, EventArgs e)
{
RadPrintDocument radPrintDocument1 = new RadPrintDocument();
radPrintDocument1.AssociatedObject = this.radRichTextEditor1;
radPrintDocument1.Landscape = true;
PaperSize ps = new PaperSize();
ps.RawKind = (int)PaperKind.A3;
radPrintDocument1.DefaultPageSettings.PaperSize = ps;
radPrintDocument1.Print();
//this.radRichTextEditor1.Print(true, radPrintDocument1);
}
how to reproduce: check the attached video
To reproduce: add some text to RadRichTextEditor and set the Enabled property to false. You will notice that the text gets bold and blurry. Workaround: instead of disabling RadRichTextEditor, use the ReadOnly property.
To reproduce: try to hide the caret:
this.radRichTextEditor1.CaretWidth = 0;
Workaround:
//Flow layout
this.radRichTextEditor1.LayoutMode = DocumentLayoutMode.Flow;
Telerik.WinControls.RichTextEditor.UI.DocumentWebLayoutPresenter webLayoutPresenter =
this.radRichTextEditor1.RichTextBoxElement.ActiveEditorPresenter as Telerik.WinControls.RichTextEditor.UI.DocumentWebLayoutPresenter;
webLayoutPresenter.Caret.Width = 0;
//Page layout
this.radRichTextEditor1.LayoutMode = DocumentLayoutMode.Paged;
Telerik.WinControls.RichTextEditor.UI.DocumentPrintLayoutPresenter activeEditorPresenter1 =
this.radRichTextEditor1.RichTextBoxElement.ActiveEditorPresenter as DocumentPrintLayoutPresenter;
activeEditorPresenter1.Caret.Width = 0;
To reproduce: please refer to the attached sample project. You will notice that the exported HTML content from the left RadRichTextEditor is imported to the right and the bullets are not the same.
The RTF specifications states that the header of the document should start with "\rtfN" where N is the version of the RTF. Currently, the RtfFormatProvider do not save the version, but only "\rtf". Most software handles this case, but in some cases the document cannot be read.
Workaround:
private void ClearDictionaries(RadRichTextEditor editor)
{
var dictionaries = typeof(DocumentSpellChecker).GetField("dictionaries", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(editor.SpellChecker) as Dictionary<CultureInfo, Lazy<IWordDictionary>>;
dictionaries.Clear();
var customDictionaries = typeof(DocumentSpellChecker).GetField("customDictionaries", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(editor.SpellChecker) as Dictionary<CultureInfo, ICustomWordDictionary>;
customDictionaries.Clear();
}
How to reproduce: 1. Run the Mail Merge example (QSF) 2. Select the image inside the document and move it to another position
Workaround:
public class CustomRadRichTextEditor : RadRichTextEditor
{
/// <summary>
/// Gets or sets the width of the caret.
/// </summary>
[Browsable(false)]
[Category(RadDesignCategory.AppearanceCategory)]
public new float CaretWidth
{
get
{
float caretWidth = base.CaretWidth;
if (float.IsNaN(caretWidth))
{
return 2;
}
return caretWidth;
}
set
{
base.CaretWidth = value;
}
}
}
When the caret position is inside Table and a page break is inserted, the table should be split into two tables with a page break between.
How to reproduce: check the attached video
Workaround:
public partial class Form1 : Form
{
private RadButtonElement buttonHeader;
private RadButtonElement buttonFooter;
public Form1()
{
InitializeComponent();
this.buttonHeader = (RadButtonElement)this.richTextEditorRibbonBar1.GetType().GetField("buttonHeader", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(this.richTextEditorRibbonBar1);
this.buttonFooter = (RadButtonElement)this.richTextEditorRibbonBar1.GetType().GetField("buttonFooter", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(this.richTextEditorRibbonBar1);
this.radRichTextEditor1.RichTextBoxElement.IsInHeaderFooterEditModeChanged += RichTextBoxElement_IsInHeaderFooterEditModeChanged;
}
private void RichTextBoxElement_IsInHeaderFooterEditModeChanged(object sender, EventArgs e)
{
if (!this.radRichTextEditor1.RichTextBoxElement.IsInHeaderFooterEditMode)
{
this.buttonHeader.Enabled = true;
this.buttonFooter.Enabled = true;
}
else
{
this.buttonHeader.Enabled = false;
this.buttonFooter.Enabled = false;
}
}
}
To reproduce: - Add a word, press tab the add another word. - Export the document using HtmlFormatProvider. - Import the same document. - The tab is interpreted like 7 spaces.