Add support for lower-alpha and upper-alpha.
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();
When importing a hyperlink containing anchor, the NavigateUri keeps the part after the hyperlink only instead of the whole URI.
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.
In MS Word, for example, when you "Save as" PDF, you can choose "options" -> Encrypt the document with a password.
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); } };
Trying to delete table cell formatting symbol, when track changes are on, will result in marking the text in the cell as deleted. MS Word does not respect such delete action.
When text is using fonts with defined ligatures (e.g. Calibri, Gabriola, etc.) and contains character groups with defined ligature for it, the text width is measured incorrectly (shorter that it should be). As caret and selection navigates on positions computed by this measuring system, they are not synchronized with what is shown in the UI (which correctly respects the ligatures), and there is slight offset from the real character positions and/or clipping of part of the letters at the end of the line. Examples of such groups are (depending on the font) "tt", "ff", "ffi".
If there is a Span surrounded with annotation ranges in a table cell and the table has conditional table style, the text cannot be selected after import of such document. If the table has normal table style (not a conditional one) everything works as expected. - If the annotations are bookmark ranges (start and end), the text cannot be selected with double-click over the text. - If the text is hyperlink, the text could be selected with double-click, but when the selection is changed through the keyboard arrows, the same issue appears. The issue appears with Docx documents, in addition to the attached Xaml one, so the issue seems not to be related to the XAML serialization.
I have tried to use the RichTextBox, but found that it does not work very well when it comes to measure the text. This results in clipped text and that the caret can be displayed in a different place then expected. This can easily be seen with a font like Gabriola, which uses complex kerning metrics. Type a text with a lot of "ff" and "fi" and you will soon see that your caret gets out of sync and that text is sometimes clipped. When I look at the code of RichTextBox it seems to me that it uses its own calculation of text widths and that the this is based on a very simple method using just the kerning information. There is also a hard coded list containing information which fonts that has kerning info and which fonts that are mono spaced. It seems strange to me to have this in a config file since there is a large number of fonts used by the users. It also seem to look at the Unicode character family in order to determine if ligatures are used or not, which is also quite strange since ligatures can be used for western characters too. The font Gabriola is an example of this. Look at "fi" in a word like "fine". It can potentially consume a lot of memory since I think that it builds a dictionary of the kerning of all pairs of characters for all fonts that it encounters. I guess this way of doing things were made for performance, but unfortunately, good performance doesn't help much if it doesn't work. I am not sure if I should report this as a bug, since it is more of a fatal design issue of the whole control.
When RadRichTextBox (in Paged layout mode) is in RadTabItem in RadTabControl, ribbon UI buttons and keyboard bindings are not working. Workaround: Use System's TabControl instead of the RadTabControl.
With the current implementation, when an image is selected, viewport is scrolled to the corresponding image document position: - In case of inline image, it moves to the end of the image, so that the image is fully visible. - In case of floating image, it moves to the position where image is anchored. The behavior of the MS Word (the view is not scrolled in such cases) is much more convenient.
Allow Span to be hidden when visualizing the document. For example, introduce a Span.IsHidden property. In MS Word, text is hidden using the Home -> Font -> Font -> Effects -> Hidden. In the RTF format, such text is preceded (marked) with a '\v' tag. In OOXML, the tag is <vanish/> Note: Hidden text is visualized with dotted underline when formatting symbols are shown. Hidden text is not exported to PDF.
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.
When trying to export a document containing InlineUIContainer inside a read-only range, the XamlWriter.Save() method that is used in XamlFormatProvider.Serialize() throws StackOverflow exception. Sample code to reproduce the exception: InlineUIContainer container = new InlineUIContainer(); Button btn = new Button(); btn.Content = "Sample Button"; btn.Width = 70; btn.Height = 30; container.UiElement = btn; ReadOnlyRangeStart start = new ReadOnlyRangeStart(); ReadOnlyRangeEnd end = new ReadOnlyRangeEnd(); end.PairWithStart(start); this.rtb.InsertInline(container); this.rtb.Document.Selection.SelectAll(); this.rtb.InsertAnnotationRange(start, end); XamlFormatProvider provider = new XamlFormatProvider(); string content = provider.Export(this.rtb.Document); File.WriteAllText(@"c:\temp\asd.xaml", content);
Implement a Page Setup dialog which allows the users to modify Margins, Layout, Page Size, etc. of the document.
The caret of RadRichTextBox appears only when the text is selected. Once you try to reorder the letters within its content, it appears. The issue is caused when ScrollViewer control has different than the default style for the corresponding theme and there are set Padding and/or Margin properties. Workaround: the template of the Caret should be edited and Style="{x:Null}" should be set on the ScrollViewer which is defined inside the Caret control template.