To reproduce: 1. Add a RichTextEditorRibbonBar on the form 2. Add a RadRichTextEditor on the form. 3. Set the RichTextEditorRibbonBar.AssociatedRichTextEditor property. 4. Run the application. You will notice that the caret for the RadRichTextEditor is displayed and the user expects to start entering text when pressing the keyboard. However, the focused control in this case is the font family drop-down and it accepts the input. Workaround: focus the RadRichTextEditor in the Form.Shown event: Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown Me.RadRichTextEditor1.Focus() End Sub
When exporting to HTML, each two consequent spaces in a run are treated as . However, when a style is applied to one of the spaces, the span is split and the two spaces are not considered as a pair, therefore, the HtmlFormatProvider exports them as normal spaces. When the two spaces are the whole content of a paragraph, this paragraph is not visible when the HTML is visualized in a browser.
The attached video shows how you can reproduce this.
This field retrieves a character through a code value specified in the field-argument. Such documents are common and are created when symbols (e.g. with font Windings through Insert -> Symbol dialog) are inserted in RTF documents in MS Word.
InvalidOperationException is thrown in the IsInNonEditableRange() method of RadDocument when assigning a document to RadRichTextBox, which is created through the model and contains several read-only ranges. Workaround: Call MeasureAndArrangeInDefaulSize().
To reproduce: - Click the InsertMergeFiled button before setting the data source. - Set the data source. - Click the button again. - There are no items in it. Workaround: Friend Class MyRichTextEditorRibbonBar Inherits RichTextEditorRibbonBar Protected Overrides Sub dropDownButtonInsertMergeField_DropDownOpening(sender As Object, e As CancelEventArgs) MyBase.dropDownButtonInsertMergeField_DropDownOpening(sender, e) If Me.dropDownButtonInsertMergeField.Items.Count = 0 Then Me.dropDownButtonInsertMergeField.Items.Add(New RadItem) End If End Sub End Class
To reproduce: please refer to the attached gif file Add a custom tab in the ribbon UI and a RadDropDownListElement bound to a list of strings. The first item is selected by default. Insert a table by using the ribbon UI and try to get programmatically the RadDropDownListElement.SelectedValue/Index. It is null/-1 although the text is correct. Workaround: public class CustomRichTextEditorRibbonBar : RichTextEditorRibbonBar { protected override void CreateChildItems(RadElement parent) { base.CreateChildItems(parent); FieldInfo fi = typeof(RadRibbonBar).GetField("ribbonBarElement", BindingFlags.Instance | BindingFlags.NonPublic); RadRibbonBarElement ribbonBarElement = fi.GetValue(this) as RadRibbonBarElement; ribbonBarElement = new CustomRadRibbonBarElement(); fi.SetValue(this, ribbonBarElement); this.RootElement.Children.Add(ribbonBarElement); ribbonBarElement.CommandTabSelecting += delegate (object sender, CommandTabSelectingEventArgs args) { OnCommandTabSelecting(args); }; ribbonBarElement.CommandTabSelected += delegate (object sender, CommandTabEventArgs args) { OnCommandTabSelected(args); }; ribbonBarElement.ExpandedStateChanged += delegate (object sender, EventArgs args) { this.OnRibbonBarExpandedStateChanged(args); }; } } public class CustomRadRibbonBarElement : RadRibbonBarElement { protected override float GetMaximumTabContentHeight() { return 104; } }
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.
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; } } }
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(); }
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.
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.
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;
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: 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