The content of a page can be aligned vertically. In DOCX, this is a property of the section and is defined with the vAlign element. <w:sectPr> … <w:vAlign w:val="center" /> </w:sectPr>
Currently, the underline is always exported as single. Add support for the other types that can be used in RadRichTextBox.
Currently, paragraphs that have applied a list style but their list level is set to -1 or another invalid value, cannot be imported due to an ArgumentOutOfRangeException. According to the specification, the scenario is invalid, though, in MS Word and WordPad, similar values are not respected.
A document contains a field in result mode different that the one specified in the export settings in the format providers (i.e. a field that need to be updated during the export), and this field is in a header/footer, and another header/footer contains a table with AutoFit to Window size. When this document is exported to docx or RTF, the table is exported with 0 width. The table is visualized splashed in RadRichTextBox, and MS Word behaves strangely and/or doesn't visualize the table at all. The bug is regression in 2018 R1. Workaround 1: Change the result mode of all fields in the headers/footers to match the one set in format provider export settings (Result by default) just prior the export. Workaround 2: Set DocxFormatProvider.ExportSettings.FieldResultMode to null. For the default format provider used from the default Save command, use the following: ((DocxFormatProvider)DocumentFormatProvidersManager.GetProviderByExtension("docx")).ExportSettings = new DocxExportSettings() { FieldResultMode = null }; Fix available in LIB Version 2018.2.723.
Pressing Delete at the end of a paragraph leads to merging the content of the current paragraph with the next block. However, when the deleted paragraph contains a single space, the layout stops updating after pressing Delete. Steps to reproduce: 1. Create two tables with paragraph between them 2. Add a space to the paragraph 3. Press Delete (when the caret is just after the space) Observed: The layout is not updated after this and further modifications Workaround: Delete the space before deleting the paragraph: private void RadRichTextBox_CommandExecuting(object sender, Telerik.Windows.Documents.RichTextBoxCommands.CommandExecutingEventArgs e) { if (e.Command is DeleteCommand && this.radRichTextBox.Document.Selection.IsEmpty) { Paragraph currentParagraph = this.radRichTextBox.Document.CaretPosition.GetCurrentParagraphBox().AssociatedParagraph; if (currentParagraph.Inlines.Count==1 && string.IsNullOrWhiteSpace((currentParagraph.Inlines.First as Span).Text)) { this.radRichTextBox.Delete(true); } } }
The dialogs don't have an owner, thus they behave unexpected and can be easily lost from the user and block the UI. This applies to many of the RadWindow.Alert() invocations in the UI of RichTextBox.
The List Override Table contains definitions that override the properties of another list definition.
Pasting HTML content causes RichTextBox to insert a paragraph break, even if the copied content did not include the end of the paragraph. Steps to reproduce: 1. Copy the first few words in a paragraph from Internet Explorer 2. Paste into the middle of a sentence in the RichTextBox Expected: The content is pasted inline Observed: The content is inserted, but a paragraph break is inserted after the content
When an element refers to a style name of a style that is not present in the document, trying to export it with RtfFormatProvider leads to KeyNotFoundException. A similar document could be produced when copying content from MS Word. The same case is working properly with the other providers as well as in WordsProcessing (check the related 133762). Workaround: Check all the styles used in the document and remove the NextStyleName or LinkedStyle values that point to non-existing in the document styles. Available in LIB Version 2018.1.212.
When cross-reference is added in the header/footer of a document in does not show the available options from the document. XAML team reviewed this item and noted that it duplicates with another one. Please use the item below in order to track the status of this request. https://feedback.telerik.com/Project/143/Feedback/Details/210419-richtextbox-add-functionality-to-work-with-cross-references-and-hyperlinks-to-bo
WMF contains both bitmap and vector elements and currently RTB supports only the bitmap parts. We should consider adding support for the vector elements as well.
The \sl (line spacing) RTF tag is supposed to be accompanied by a number indicating the value of the line spacing. According to the RTF specification: Space between lines. If this control word is missing or if \sl0 is used, the line spacing is automatically determined by the tallest character in the line. If N is a positive value, this size is used only if it is taller than the tallest character (otherwise, the tallest character is used); if N is a negative value, the absolute value of N is used, even if it is shorter than the tallest character. However, there are documents where the number is missing at all and MS Word interprets those as if the value is 0. RadRichTextBox visualizes these with lines of size close to zero which makes them invisible. Although this case is not mentioned in the specification, we can consider fixing it.
There is a large performance hit when manipulating an area of the document with many annotation ranges in it. Fix available in LIB Version 2018.1.326.
When a value is selected in the FontSize combo box using the arrows and Enter, the font size of the selected text is not updated. The same scenario is working as expected when using the font size combo box from the ribbon.
Undoing changes to words wrapped in annotation ranges throw InvalidCastExceptions as AnnotationRangeStarts are casted to AnnotationRangeEnd. Steps to reproduce: 1. Add a bookmark to a word 2. Add a bookmark to the following word in the document 3. Use the find dialog to highlight those two words 4. Bold the text 5. Press Ctrl+Z to undo Observed: Repeated InvalidCastException dialogs Fix available in LIB Version 2018.1.430.
If header/footer containing annotations is set to a document using RadDocumentEditor.ChangeSectionHeader or ChangeSectionFooter methods, the annotations in the body of the header/footer are not paired in the resulting document. When such document is exported to XAML, NullReferenceException is thrown in the ReindexAnnotationMarkers internal method. Workaround: - Do not use RadDocumentEditor to set the footer: //editor.ChangeSectionFooter(radDocument.Sections.First, HeaderFooterType.Default, new Footer { Body = footerRadDocument }); radDocument.Sections.First.Footers.Default.Body = footerRadDocument; - Manually "fix" the cloned footer body before the export: ((ISupportInitialize)radDocument.Sections.First.Footers.Default.Body).EndInit();
NullReferenceException is thrown when documents are exported to PDF using PdfFormatProvider in multiple threads. Available in R1 2018 Official Release Version.
When Justify text alignment is applied to a paragraph, it should not increase the space between word which are before the last tab symbol for each line. Steps to reproduce: - Open RadRichTextBox in Paged layout mode, default A4 section size - Type the following text: -- "Welcome Welcome Welcome Welcome Welcome " -- then tab symbol -- then "test1 test1 uncharacteristically" - Switch paragraph alignment to Justify. Expected: The space between 'Welcome' words remains the same in Left and Justify alignments. Actual: The space between 'Welcome' words is increased when Justify alignment is chosen, as compared to when Left is chosen.
There is a memory leak related to the referenced elements by style in the style repository from the main document. The referenced elements are from headers and footers.
When applying a table style, the previously applied local properties to a table or cell should be cleared and the ones defined by the style should be used. Workaround: Create a new Table and apply the style to it; then copy the properties to the existing table in the document private void RadRichTextBox_CommandExecuting(object sender, CommandExecutingEventArgs e) { if (e.Command is ChangeStyleNameCommand && this.radRichTextBox.Document.CaretPosition.IsPositionInsideTable) { StyleDefinition style = this.radRichTextBox.Document.StyleRepository.GetValueOrNull(e.CommandParameter.ToString()); if (style.Type == StyleType.Table) { Table currentTable = this.radRichTextBox.Document.CaretPosition.GetCurrentTableBox().AssociatedTable; currentTable.Borders = new TableBorders(style.TableProperties.Borders); Table tableWithStyle = new Table(currentTable.Rows.Count, currentTable.Rows.First.Cells.Count); tableWithStyle.Style = this.radRichTextBox.Document.StyleRepository.GetValueOrNull(e.CommandParameter.ToString()); for (int rowIndex = 0; rowIndex < currentTable.Rows.Count; rowIndex++) { for (int columnIndex = 0; columnIndex < currentTable.Rows.First.Cells.Count; columnIndex++) { TableCell cell = currentTable.Rows.Skip(rowIndex).First().Cells.Skip(columnIndex).First(); TableCell cellWithStyle = tableWithStyle.Rows.Skip(rowIndex).First().Cells.Skip(columnIndex).First(); cell.Background = cellWithStyle.Background; cell.Borders = cellWithStyle.Borders; } } this.radRichTextBox.UpdateEditorLayout(); e.Cancel = true; } } }