The width of the table cell is calculated wrongly when it is set in the CSS style and through attribute: <td style="WIDTH: 75%" width=450>First cell</td>. The Unit isn't reset while reading the attribute value as its unit is missing and it is interpreted as % because the previous value is in percent.
Line break has a specific property which should be taken into account only when there is a floating object which interrupts the line, e.g.: <w:br w:type="textWrapping" w:clear="all" />
Adding a custom list could be done by using the AddCustomListStyle method of RadDocument. However, this operation will not be included in the Undo stack. Deleting the full chain of relationships between a list style and a document list is not possible.
When editing header/footer in MS Word, the paragraph which is inserted there has defined tab stops. In RadRichTextBox there isn't and thus, when the tab is pressed, a default tab stop is inserted.
This functionality is not supported out-of-the-box. However, it could be implemented by the users as demonstrated in the Custom Code Formatting Language SDK example (https://github.com/telerik/xaml-sdk/tree/master/RichTextBox/CustomCodeFormattingLanguage).
Words containing apostrophes are not recognized by the spell checker. Examples: - Some contracted forms , for example "they've" - A lot of common French words, e.g. "Aujourd’hui", "qu’une", "n'est" The issue could be observed for the single straight (') as well as for the smart (’) quote. Workaround: Add the all word parts to the dictionary, for example, to recognize "they've", both "they" and "ve" should be added to the dictionary. Fix available in LIB Version 2017.3.1009.
Importing HTML with "a:link" CSS style will be applied to the text in a bookmark. Here is example of such HTML: <html> <head> <style type="text/css"> a:link { text-decoration: underline; } </style> </head> <body> <a name="anchor">Anchor element</a> </body> </html> A possible workaround is to select the content between the bookmarks and apply different underline decoration. Here is example of how this could be done: List<BookmarkRangeStart> bookmarks = document.EnumerateChildrenOfType<BookmarkRangeStart>().ToList(); foreach (var rangeStart in bookmarks) { document.Selection.Clear(); var start = new DocumentPosition(document); start.MoveToEndOfDocumentElement(rangeStart); var end = new DocumentPosition(document); end.MoveToEndOfDocumentElement(rangeStart.End); document.Selection.AddSelectionStart(start); document.Selection.AddSelectionEnd(end); RadDocumentEditor editor = new RadDocumentEditor(document); editor.ChangeUnderlineDecoration(UI.TextDecorations.DecorationProviders.UnderlineTypes.None); } document.Selection.Clear();
While typing in a document containing a table with nested table, and the table is moved to the next page because of the flow of the text, NullReferenceException is thrown. When such document is loaded in RadRichTextBox a NullReferenceException could be thrown depending of the exact document or the application will hangs (goes to infinite cycle during the document layout). Available fix in LIB version 2017.1.410.
Scroll to the necessary value the vertical offset of the RadRichTextBox if header/footer is not in the viewport, but the editor goes into it. Workaround: In the current implementation this could probably be achieved by using the ScrollToVerticalOffset method, but the calculations which should be done for the offset value might be not so straight-forward and easy to make. Here is a sample example of this: this.radRichTextBox.ActiveDocumentEditorChanged += (s, e) => { if (e.DocumentEditorType == Telerik.Windows.Documents.UI.DocumentEditorType.Footer) { Section section = this.radRichTextBox.Document.CaretPosition.GetCurrentSectionBox().AssociatedSection; double offset = this.radRichTextBox.VerticalOffset + (section.PageSize.Height - section.ActualPageMargin.Bottom) * this.radRichTextBox.ScaleFactor.Height; this.radRichTextBox.ScrollToVerticalOffset(offset); } };
As a user, I'd like to have a way to determine what document elements or layout boxes are in the view port. I may need them in order to: - Modify something else in the UI depending on them. For example, if a hyperlink or bookmark is scrolled in the viewport, enable buttons outside RichTextBox that execute specific actions. - Implement formatting changes to the visible elements only in scenarios like a code editor. Right now, the only way to obtain the visible boxes is to implement a UI layer, however, layers are intended for scenarios in which you'd like to modify the presentation of the control's content and may not be a good idea to utilize them for formatting changes or other actions.
In MS Word, images can have strikethrough formatting. In RadDocument's model, this is property of Spans only.
For example, if the document has "Times New Roman" as a default font family, the "TableNormal" style doesn't have set that property and there is a Table element in the header - the value is not properly obtained ("Verdana" is applied, which is the default value for that Span property). The problem is observed for all default span style properties. Workaround: Change the table style by setting the necessary properties from the default style. For example for the font family: object documentFontFamilyPropertyValue = this.radRichTextBox.Document.Style.GetPropertyValue(Span.FontFamilyProperty); foreach (StyleDefinition tableStyle in this.radRichTextBox.Document.StyleRepository.Where(s => s.Type == StyleType.Table && s.BasedOn == null)) { StylePropertyBase styleProperty = tableStyle.GetProperty(Span.FontFamilyProperty); if (styleProperty.ValueSource == RadValueSource.Default) { tableStyle.SetPropertyValue(Span.FontFamilyProperty, documentFontFamilyPropertyValue); } }
When a list item with applied first line indent is exported to PDF, the bullets are with wrong indent (images attached) Partial workaround: Remove the first line indent and set it as left indent in order to preserve the visualization of the document editor.ChangeParagraphLeftIndent(paragraph.FirstLineIndent + paragraph.LeftIndent); editor.ChangeParagraphFirstLineIndent(0);
In MS Word, decimal tab stops affect paragraph layout in table cells even if tab character is not inserted. The reasoning is that it's hard to insert tab symbol in table cell, as pressing Tab navigates to the next cell (Ctrl+Tab should be used, or default behavior should be configured).
When a table is copied (without a paragraph before it) and pasted as first element in a Section in RadRichTextBox with Track Changes enabled, accepting all changes throws (handled) InvalidCastException. Changes are not accepted. Workaround: Attach to RadRichTextBox.CommandExecuting event, and add paragraph before the table in the document fragment in the clipboard. private void RadRichTextBox_CommandExecuting(object sender, Telerik.Windows.Documents.RichTextBoxCommands.CommandExecutingEventArgs e) { if (e.Command is Telerik.Windows.Documents.RichTextBoxCommands.PasteCommand) { if (this.radRichTextBox.Document.IsTrackChangesEnabled) { DocumentFragment documentFromClipboard = ClipboardEx.GetDocument(); if (documentFromClipboard != null) { e.Cancel = true; RadDocument documentFormClipboard = documentFromClipboard.ToDocument(); if (documentFormClipboard.EnumerateChildrenOfType<Table>().Count() > 0) { Section firstSection = documentFormClipboard.Sections.FirstOrDefault(); if (firstSection.EnumerateChildrenOfType<Table>().Count() > 0) { if (firstSection.EnumerateChildrenOfType<Table>().FirstOrDefault() != null) { Table table = firstSection.EnumerateChildrenOfType<Table>().FirstOrDefault(); Paragraph paragraph = new Paragraph() { SpacingAfter = 0, SpacingBefore = 0, LineSpacing = 0, FontSize = 1 }; firstSection.Blocks.AddBefore(table, paragraph); RadDocumentEditor editor = new RadDocumentEditor(this.radRichTextBox.Document); DocumentFragment fragment = new DocumentFragment(documentFormClipboard); editor.InsertFragment(fragment); } } } } } } }
When table cell text alignment (including horizontal and vertical alignment) is applied to a specific part of the table (e.g. First Row, First Column, etc.), the horizontal alignment is not applied. Only the vertical alignment is applied. If the alignment is applied to the whole table, then everything works as expected.
When comments panel is closed while the caret is still in the comment body, most document commands (all except typing) continue to execute in the comment body. The bug is regression introduced in 2013 Q3. Workaround: save the document position of the caret before showing the comment and after hiding the comments' panel, apply the saved caret position to the document. Attached is a sample project with the fix.
For example for Input Method Editors like Marathi Indic Input, part of MS Indic Language input tool, downloadable from here: http://www.bhashaindia.com/ilit/Marathi.aspx. Workaround: RadRichTextBox currently exposes customization point for implementing custom IMEs, see Custom IME Support: http://docs.telerik.com/devtools/wpf/controls/radrichtextbox/ime-support#custom-ime-support
After resizing the window, the text stays at the same location instead of moving to the next line. The result is overlapping text.
Currently, colors with alpha channel defined with 'rgba' function are not supported, for example the following: <span style="background-color: rgba(0, 0, 0, 0.5);">Some text</span> is imported as black color; semi-transparent colors are exported without the alpha channel.