Possible workaround is to change the document of RadRichTextBox.
When trying to import a document containing bookmark and BookmarkRangeEnd is after the last paragraph, a StackOverflowException is thrown in IntervalNode while trying to rebuild the document cache. (RadDocumentChildrenCache.RebuildTree()). The same could be observed if the bookmark end is last in the header/footer, between table cells in the RadDocument body, or when all paragraphs after the bookmark range end are hidden (with vanish property). Workaround: Detect the problematic annotations and remove them: foreach (var rangeStart in document.EnumerateChildrenOfType<AnnotationRangeStart>()) { if (rangeStart.End == null || rangeStart.End.Parent == null || rangeStart.End.Parent.Parent == null) { //MessageBox.Show("This indicates a problem."); rangeStart.Parent.Children.Remove(rangeStart); } } Note: Until 2017 R2 SP1 release StackOverflowException is thrown, after this release an ArgumentException should be thrown.
The TableStylesGallery keeps a reference to the document, which doesn't allow the GC to collect it. The issue is reproducible when the document is loaded in RadRichTextBox in the constructor of the window or in its Loaded event.
When ScaleFactor is set to less that (1,1), this causes the caret to disappear at specific positions in the document. These positions depend on the exact value of the scale factor. The focus is still in the editor and users can type. Note that if the scale factor changes, the positions where the caret is not visualized will change as well.
When the LevelText of the list style is empty, PdfFormatProvider throws an IndexOutOfRangeException while trying to draw the bullet. Workaround: Ensure that the LevelText of the ListItemStyle is not an empty string: foreach (ListStyle listStyle in this.radRichTextBox.Document.ListManager.GetAllListStyles()) { foreach (ListLevelStyle level in listStyle.Levels) { if (string.IsNullOrEmpty(level.LevelText)) { level.LevelText = " "; } } }
When document fragment containing consecutive spans with same style is inserted with RadRichTextBox.InsertFragment method, and the document is with specific structure (which is not exactly known), NullReferenceException in HierarchicalIndex.GetBoxByHierarchicalIndex could be thrown when text is typed in specific places in the document. Workaround: Ensure that such spans are merged before creating the fragment: var document = xamlProvider.Import(xaml); document.MergeSpansWithSameStyles(); var fragment = new DocumentFragment(document); rtb.InsertFragment(fragment); --------------------------------------- Sample call stack: System.NullReferenceException at Telerik.Windows.Documents.HierarchicalIndex.GetBoxByHierarchicalIndex(DocumentLayoutBox documentBox, HierarchicalIndex hierarchicalIndex) at Telerik.Windows.Documents.DocumentPosition.RestorePositionFromBoxIndex(Nullable`1 raiseEvent) at Telerik.Windows.Documents.Model.RadDocumentEditor.InsertTextInternal(String text, Span currentSpanStyle, Boolean explicitAcceptsReturn) at Telerik.Windows.Documents.Model.RadDocumentEditor.InsertFromUI(String text, Span currentSpanStyle, Boolean acceptsReturn) at Telerik.Windows.Controls.RadRichTextBox.Telerik.Windows.Documents.UI.ITextInputCommandsHandler.InsertText(String text) at Telerik.Windows.Documents.UI.CaretTextInputHandler.InsertText(String text) at Telerik.Windows.Documents.UI.CaretTextInputHandler.HandleTextInsertedWithoutIme(RadDocument document, String text) at Telerik.Windows.Documents.UI.CaretTextInputHandler.CaretUI_TextInserted(Object sender, TextInsertedEventArgs e) at Telerik.Windows.Documents.UI.Caret.OnTextInserted(Object sender, TextInsertedEventArgs e) at Telerik.Windows.Documents.UI.Caret.OnTextChanged() at Telerik.Windows.Documents.UI.Caret.Caret_TextChanged(Object sender, TextChangedEventArgs e) ... Fix available in LIB Version 2018.2.813.
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.
When a text doesn't specify font explicitly with \fN tag, and default character properties (\defchp) are not specified, or are specified but without font set, the font of the text is visualized with the default font - Verdana. Instead, the default font for the document should be used - defined with \deffN tag.
When the control is used in NoXaml scenario and the required resources are merged in the resources of the Window/UserControl containing RadRichTextBox, XamlParseException is thrown at runtime with a message "Cannot find resource named 'thumbStroke'." or the App.Current.Resources.MergedDictionaries is cleared. Workaround: Merge Telerik.Windows.Documents.xaml and Telerik.Windows.Controls.RichTextBoxUI.xaml in App.xaml. or Merge the resourced before initializing RadRichTextBox: App.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("/Telerik.Windows.Documents;component/Themes/Styles/ImageAdornerUIResourcesDictionary.xaml", UriKind.RelativeOrAbsolute) }); Fix available in R3 2017 Official Release version.
In Word and WordPad when hitting Ctrl+Down Arrow the cursor moves to the start of the next paragraph, until the last paragraph in the document where it moves to the end of the document. In Telerik editor it moves to the end of the paragraph. Steps to reproduce: - Load a document with multiple lines of text - Click near the top of the document and hit Ctrl+Down repeatedly Expected: The cursor moves down one paragraph at a time with the cursor at the start of the paragraph Actual: The cursor moves down one paragraph at a time with the cursor at the end of the paragraph Fix available in LIB Version 2017.3.1218.
Using Microsoft Pinyin IME for typing in the RichTextBox causes FatalExecutionEngineError exception.
The content of the table cells seems to be rendered in the correct position while the borders are drawn above the continues section break.
Add the following code to an application with a RadRichTextBox in it: for (var i = 0; i < 1000; i++) { var doc = radRichTextBox.Document.CreateDeepCopy(); } If your document does not contain any lists it behaves as expected: memory usage increases until the next GC when it is collected. If there are lists in your document the RadDocument instances created by CreateDeepCopy are never collected and your app will run out of memory. Fix available in LIB Version 2018.3.1029.
Depending on the current layout of the document, invoking SetPosition() for a specific location might result in positioning the caret on the line prior to the expected one.
Steps to reproduce:
radRichTextBox.Insert("one: ");
radRichTextBox.Insert(Environment.NewLine);
radRichTextBox.Insert("two: ");
radRichTextBox.Insert(Environment.NewLine);
radRichTextBox.Insert("tree: ");
radRichTextBox.Insert(Environment.NewLine);
radRichTextBox.Insert("four: ");
radRichTextBox.Insert(Environment.NewLine);
radRichTextBox.Insert("five: ");
radRichTextBox.Insert(Environment.NewLine);
radRichTextBox.Insert("seks: ");
radRichTextBox.Insert(Environment.NewLine);
radRichTextBox.Insert("seven: ");
radRichTextBox.Insert(Environment.NewLine);
radRichTextBox.Insert("eitgh: ");
radRichTextBox.Insert(Environment.NewLine);
radRichTextBox.Insert("nine: ");
radRichTextBox.Insert(Environment.NewLine);
radRichTextBox.Insert("ten: ");
radRichTextBox.Document.CaretPosition.SetPosition(radRichTextBox.Document.CaretPosition.Location); radRichTextBox.Focus();
Observed: The caret is positioned after "eitgh:"
Expected: The caret shouldn't change its position
In certain rare occasions, double-clicking a table cell may throw:
inline does not belong to this document.
at Telerik.Windows.Documents.Model.RadDocument.GetContainingAnnotationRanges[TRangeStart](Inline inline, Predicate`1 filter, Boolean inclusive)
at Telerik.Windows.Documents.Selection.MouseSelectionHandler.HandleCheckBox(InlineLayoutBox layoutBox)
at Telerik.Windows.Documents.Selection.MouseSelectionHandler.RegisterDocumentSingleMouseDown(Boolean ctrlPressed, Boolean shiftPressed, Point position, UIElement originalSource)
. . .