When the user enter text using the keyboard the PositionChanged event of the CaretPosition is not fired. The item's status changed to Declined - the LocationChanged event can be used to track when the location of the position has been changed.
There is not defined behavior of tables without fixed column width in FlowNoWrap. They try to fill the unlimited space, so only tables with fixed width can be used in this mode. The expected behavior might be fitted column width to its content or auto fitted table width to window. This can cause a hang of the application or unexpected behavior while working with the table (e.g. the thumbs for resizing the column width appear after the column border instead over it). Workaround: Subscribe to CommandExecuted, get the inserted table and set a fixed width to it. Available in R1 2018 SP2 release version.
MS Word clears the character style property of a span when a new value equal to the default value is applied. This is applicable only when the span or the parent paragraph does not have associated style which has a local property defined for the same style property.
In some cases when an image is copied from an external source and pasted in the rich text box, the image is not displayed. This is caused by the Clipboard.GetImage() method used internally by the control. To work this around, you can subscribe for the CommandExecuting event of RadRichTextBox and manually get the image from the clipboard. private void Rtb_CommandExecuting(object sender, Telerik.Windows.Documents.RichTextBoxCommands.CommandExecutingEventArgs e) { PasteCommand command = e.Command as PasteCommand; if (command != null && (Clipboard.GetData("DeviceIndependentBitmap") != null)) { //Get the image stream from the clipboard. //You can check the following blog post for an approach which you can use to get the image properly: //https://www.thomaslevesque.com/2009/02/05/wpf-paste-an-image-from-the-clipboard/ this.radRichTextBox.InsertImage(imageStream, "jpeg"); e.Cancel = true; } }
The normal hyphen should break the line and the non-breaking hyphen (inserted with: alt+0173) should not break the line
StackOverflowException is sometimes thrown while a document containing annotations is updated in the main thread (e.g. by typing in it), and spell checking is enabled. The exception is thrown in a background thread, which call stack similar to this one: 2f89dfe8 00566287 Telerik.Windows.Documents.Cache.IntervalTree.IntervalNode`2[[System.__Canon, mscorlib],[Telerik.Windows.Documents.Cache.IntervalTree.HierarchicalIndexStruct, Telerik.Windows.Documents]]..ctor(System.Collections.Generic.IEnumerable`1<System.__Canon>) 2f89e084 00566287 Telerik.Windows.Documents.Cache.IntervalTree.IntervalNode`2[[System.__Canon, mscorlib], ... 2f89e4dc 00565cd8 Telerik.Windows.Documents.Cache.RadDocumentChildrenCache.RebuildTree() 2f89e52c 005658c1 Telerik.Windows.Documents.Cache.RadDocumentChildrenCache.Rebuild() 2f89e538 1413b704 Telerik.Windows.Documents.Cache.RadChildrenCacheBase`1[[System.__Canon, mscorlib]].EnsureValid() 2f89e568 00568c72 Telerik.Windows.Documents.Cache.RadDocumentChildrenCache.ContainsAnnotationMarkersOfType[[System.__Canon, mscorlib]]() 2f89e5c0 00568b29 Telerik.Windows.Documents.Cache.RadDocumentChildrenCache.GetContainingAnnotationRanges[[System.__Canon, mscorlib]](Telerik.Windows.Documents.Model.Inline, Boolean) 2f89e618 0056896f Telerik.Windows.Documents.Model.RadDocument.GetContainingAnnotationRanges[[System.__Canon, mscorlib]](Telerik.Windows.Documents.Model.Inline, System.Predicate`1<System.__Canon>, Boolean) 2f89e654 1b6b76d3 Telerik.Windows.Documents.Proofing.DocumentProofingManager.IsPositionInIgnoredRange(Telerik.Windows.Documents.DocumentPosition) 2f89e664 1b6b72e7 Telerik.Windows.Documents.Proofing.DocumentProofingManager+<SplitRangeToUpdate>d__2.MoveNext() 2f89e690 1b6b7019 Telerik.Windows.Documents.Proofing.DocumentProofingManager.UpdateIncorrectWordsList(Telerik.Windows.Documents.DocumentPosition, Telerik.Windows.Documents.DocumentPosition) 2f89e6c0 1b6b6ef2 Telerik.Windows.Documents.UI.Layers.TextDecorationLayers.ProofingErrorsDecorationUILayer+<>c__DisplayClass9.<MarkBoxesWithSpellingErrorsAsynch>b__5() 2f89e6d0 1b612094 Telerik.Windows.Documents.Utils.DelayedExecution.ExecuteAction(Boolean) 2f89e6e4 1b6b6e34 Telerik.Windows.Documents.Utils.DelayedExecution.OnThreadingTimer(System.Object) 2f89e704 65fa5b38 System.Threading.TimerQueueTimer.CallCallbackInContext(System.Object) 2f89e708 65fc4157 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 2f89e774 65fc4096 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 2f89e788 65fa5a81 System.Threading.TimerQueueTimer.CallCallback() 2f89e7bc 65fa593c System.Threading.TimerQueueTimer.Fire() 2f89e7fc 65fa5861 System.Threading.TimerQueue.FireNextTimers() 2f89e83c 65fa5724 System.Threading.TimerQueue.AppDomainTimerCallback() 2f89ea68 66d73de2 [DebuggerU2MCatchHandlerFrame: 2f89ea68] Note: Until 2017 R2 SP1 release StackOverflowException is thrown, after this release an ArgumentException should be thrown.
Declined: Not reproducible anymore.
The bookmark decoration square bracket is visualized in a previous table cell if the parent table does not have content. The visualization of the ending bracket does not affect the location in the document of the bookmark range end. Steps to reproduce: Insert an empty table 3x3. Select the entire table. Insert bookmark. Toggle the bookmarks. RadRichTextBox has a ToggleBookmarks method which will visualize or hide the bookmark surrounding square brackets. You can also check the attached screenshot.
Handwriting keyboard allows you to enter text with a pen or other stylus. This is currently not implemented in RichTextBox and when you are using handwriting keyboard, the text is inserted more than once when the stylus is lifted while writing.
The dialog should match the strings contained in the different document parts (headers, footers, footnotes, endnotes, comments).
All bullet list levels are exported to HTML with list-style-type:disc. Instead, they should be exported with list-style-type:disc, list-style-type: circle;, and list-style-type: square; depending on the level - Level 1,4,7 are with disc, level 2,5,8 are with circle, and level 3,6,9 are with square for the default bullet list type. Note: There are more problems with the HTML export/import roundtrip in this use case: - indents FirstLineIndent, RightIndent, Left are set locally - this prevent the expected changing of indent when changing the list level. - formatting of the bullet (font for example) is set to the paragraph. Steps to reproduce: - Add bullet list with three levels. - Export to HTML. Expected: The browser show the list preserving the bullet styles. Actual: The browser visualizes the list with different bullet styles.
The exception is thrown when performing undo of a section break, immediately followed by a table, and the second section is separated between more than one section layout box. Workaround: Ensure there is a paragraph between the break and the table.
The header of the first page can have only settings applied without any content. In such scenarios, RtfFormatProvider doesn't import the whole header, which can lead to a different layout of the document.
The settings of the empty paragraphs in the document fallback to the default document settings (Verdana). The EnumerateChilderOfType() method can be used to traverse all the paragraphs in the document and apply them the same font family as a workaround.
For some font sizes, the end of the last letter or the start of first letter is clipped. The problem is most visible with italic styles and large font sizes, but is present even for small sizes and regular style.
NullReferenceException is thrown when a hyperlink is removed from the document while the user is hovering it with the mouse. Such cases are when hyperlink is removed from the context menu, or when TOC field containing hyperlinks is updated from the context menu. The exception is with the following call stack: ErrorMessage: Object reference not set to an instance of an object. StackTrace: at Telerik.Windows.Documents.UI.UIProviders.HyperlinkUIProviderBase.UIElement_MouseEnter(Object sender, MouseEventArgs e) at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) ... If the mouse hovers the hyperlink a moment later, exception is not observed. The situation when the mouse is over a hyperlink is not so uncommon: - When the user operates hyperlink context menu with the keyboard and removes the hyperlink - when there are multiple items in the ToC, there is great probability for the mouse to be over a hyperlink which is just below the Update Field button in the context menu - and when the context menu disappears, the mouse gets over the hyperlink. Fix available in LIB Version 2017.2.529.
In Office Open XML documentation there is element named "AlternateContent" which can contain image. Currently the content inside the AlternateContent element is skipped.
We have a legacy system that generates RTF using some native RTF controls. The RTF generated by this application is compatible with MS wordpad. But seems that the RadRichTextBox is not compatible. The problem is when we use bullets. Consider we create an RTF with bullets, using legacy - * Legacy Bullet 1 * Legacy Bullet 2 * Legacy Bullet 3 Then, this is the RTF that is generated - {\rtf1\fbidis\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 Segoe UI;}{\f1\fnil\fcharset0 Arial;}{\f2\fnil\fcharset2 Symbol;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\ltrpar\cf1\lang1033\f0\fs22\par \pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\ltrpar\fi-200\li200\tx360 Legacy Bullet 1\par \pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\ltrpar\fi-200\li200\tx360\tx360 Legacy Bullet 2\par \pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\ltrpar\fi-200\li200\tx360\tx360\tx360 Legacy Bullet 3\par \pard\ltrpar\tx360\tx360\tx360\par \f1\par } ---------------------------------------------------------------------- Now, if we open this RTF in Wordpad, then the bullets are displayed correctly. But the bullets are not displayed when we bind the RTF to RadRichTextBox. It displays something like this - Legacy Bullet 1 Legacy Bullet 2 Legacy Bullet 3 And after binding the original RTF, if we now try to get the RTF this is how it looks like - {\rtf\ansi\ansicpg1252\uc1\deff0\deflang1033{\fonttbl{\f0 Verdana;}{\f1 Segoe UI;}{\f2 Arial;}}{\colortbl\red0\green0\blue0 ;;}{\*\defchp\ltrch\f0\fs24\i0\b0\strike0\cf0\cb1\highlight1\ulc0\ulnone}{\*\defpap\sl276\slmult1\sa180}{\stylesheet{\s0\sqformat\spriority0\ltrch\f0\fs24\i0\b0\strike0\cf0\cb1\highlight1\ulc0\ulnone\sl276\slmult1 Normal;}{\*\ts2\tsrowd\spriority59\trbrdrt\brdrnone\trbrdrb\brdrnone\trbrdrl\brdrnone\trbrdrr\brdrnone\trbrdrh\brdrnone\trbrdrv\brdrnone\trgaph0\clpadft3\clpadt0\clpadfr3\clpadr0\clpadfl3\clpadl0\clpadfb3\clpadb0\tsvertalt\ltrch\f0\fs24\i0\b0\strike0\cf0\cb1\highlight1\ulc0\ulnone\sl276\slmult1 Table Normal;}}\nouicompat\viewkind4\paperw12240\paperh15840\margl1425\margr1425\margt1425\margb1425\deftab720\sectd\pgwsxn12240\pghsxn15840\marglsxn1425\margrsxn1425\margtsxn1425\margbsxn1425\headery720\footery720\pard\s0\ltrpar\sl240\slmult1{\ltrch\f1\fs22\i0\b0\strike0\cf0\cb1\highlight1\ulc0\ulnone\par}\pard\s0\ltrpar\tx360\sl240\slmult1\li200\lin200\fi-200{\ltrch\f1\fs22\i0\b0\strike0\cf0\cb1\highlight1\ulc0\ulnone Legacy Bullet 1}{\ltrch\f1\fs22\i0\b0\strike0\cf0\cb1\highlight1\ulc0\ulnone\par}\pard\s0\ltrpar\tx360\sl240\slmult1\li200\lin200\fi-200{\ltrch\f1\fs22\i0\b0\strike0\cf0\cb1\highlight1\ulc0\ulnone Legacy Bullet 2}{\ltrch\f1\fs22\i0\b0\strike0\cf0\cb1\highlight1\ulc0\ulnone\par}\pard\s0\ltrpar\tx360\sl240\slmult1\li200\lin200\fi-200{\ltrch\f1\fs22\i0\b0\strike0\cf0\cb1\highlight1\ulc0\ulnone Legacy Bullet 3}{\ltrch\f1\fs22\i0\b0\strike0\cf0\cb1\highlight1\ulc0\ulnone\par}\pard\s0\ltrpar\tx360\sl240\slmult1{\ltrch\f1\fs22\i0\b0\strike0\cf0\cb1\highlight1\ulc0\ulnone\par}\pard\s0\ltrpar\tx360\sl240\slmult1{\ltrch\f2\fs22\i0\b0\strike0\cf0\cb1\highlight1\ulc0\ulnone\par}} -Amul.
Implement import of bullets and numbering which use the old Word 6.0/Word 95 format from RTF. This includes, but is not limited to, the following RTF tags: \pnlvlN, \pnlvlblt, \pnlvlbody, \pnlvlcont. See RTF specification, "Word 6.0 and Word 95 RTF" heading for full description. WordPad and some legacy systems export lists with this formatting, so the construction is relatively widespread. According to the specification, if RTF reader doesn't support specific bullets/numbering tags, it can use the \pntext tag to read the bullets/numbering as plain text; but currently RadRichTextBox always ignores the \pntext tag. Because of this, the bullets or numbers of lists in the old format are missing after import.
ContextMenu holds a reference to last RadRichTextBox it's shown for. Since ContextMenu is cached by MEF, this leads to memory leak. Workaround: There are two options: - manually set different instances of ContextMenu to all your RadRichTextBox-es this.radRichTextBox.ContextMenu = new Telerik.Windows.Controls.RichTextBoxUI.ContextMenu(); - Create custom context menu that will be non-sharable. MEF will automatically load different instances of it for all RadRichTextBoxes on demand: [PartCreationPolicy(CreationPolicy.NonShared)] [CustomContextMenu] public class NonSharedContextMenu : ContextMenu { } Using any of the options will prevent MEF from creating cached instance of the ContextMenu.
A paragraph is exported to HTML with properties from its bullet when the default document properties are customized. Here are the steps to reproduce: Change the document default font-size to 10.5 pt(14px). Change the document default font-family to "Calibri". Add two paragraphs with text. Apply a list to the paragraphs Export to HTML Import the resulted HTML. Observed: The paragraphs text is with font-family "Verdana" and font-size of 12pt Expected: The paragraphs should inherit its font properties from the document default properties. You could also check the attached Observed and expected screenshots.