Currently the API allows ClipboardHandler-s to be registered in ClipboardEx.ClipboardHandlers collection, which is used when content is pasted. We can extend ClipboardHandler with property describing whether the handler is supported for copy, paste, or copy&paste, and use the collection for copy operation as well. Workaround: Use RadRichTextBox.CommandExecuted and on copy, enhance the original data object in the clipboard: this.radRichTextBox.CommandExecuted += (sender, e) => { if (e.Command is CopyCommand) { var originalDataObject = Clipboard.GetDataObject(); DataObject dataObject = new DataObject(); foreach (string format in originalDataObject.GetFormats()) { dataObject.SetData(format, originalDataObject.GetData(format)); } dataObject.SetData("Html", new HtmlFormatProvider().Export(this.radRichTextBox.Document)); Clipboard.SetDataObject(dataObject); } };
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.
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.
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.
The dialog should match the strings contained in the different document parts (headers, footers, footnotes, endnotes, comments).
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 normal hyphen should break the line and the non-breaking hyphen (inserted with: alt+0173) should not break the line
As a result RadDocument instances cannot be collected by the GC.
Bullet with a big font-size applied is not horizontally aligned with the rest of the bullets of the same level. Steps to reproduce: 1. Add several paragraphs. 2. Apply a list to the paragraphs. 3. Select a paragraph in the middle. 5. Apply a big font-size, like 24. 6. Export to HTML. Actual: The bullet with the bigger font-size is not horizontally aligned with the rest of the paragraphs. Expected: All paragraphs should be horizontally aligned
ArgumentException is thrown when a missing image with no width and height is imported from HTML format. Steps to reproduce: 1. Import the attached HTML. 2. Wait for a few second for loading the image. Actual: An ArgumentException is thrown for setting the width or height of an image to an infinity. Fix available in LIB Version 2017.2.522.
When typing in RadRichTextBox, the characters appear in the document with slight delay.
Some customers are complaining that when the mini toolbar is shown, it is semi-transparent - they expect to be fully shown. Currently, this behavior cannot be customized. Think of adding some setting about how this toolbar will be visualized.
When the main container of a window is ScrollViewer, the caret is not kept in the view while users move it with the arrow keys.
When an application is built with .net version 4.7, the paragraph dialog is clipped in the bottom.
Hyperlink tooltip is not changed when the HyperlinkNavigationMode property of RadRichTextBox is changed. Workaround: Invoke radRichTextBox.ActiveEditorPresenter.RecreateUI() method just after the property value change: this.radRichTextBox.HyperlinkNavigationMode = HyperlinkNavigationMode.Click; this.radRichTextBox.ActiveEditorPresenter.RecreateUI(); Steps to reproduce: 1. Insert a hyperlink in RTB. 2. On button click change the HyperlinkNavigationMode. Observe: The tooltip is not changed from Click to ... Ctrl + Click to .. and vise versa.
Selection doesn't work as expected at the end of a Paragraph. If the user holds down the mouse button down and drags just after the paragraph end (in the free space after the last line), the end of paragraph symbol is unexpectedly selected when the mouse hovers the end of paragraph symbol. Instead, the first letter before the paragraph end should be selected, but only after the mouse hovers it. Steps to reproduce: - Add two paragraphs. - Click in the empty space just after the end of the last line of the first paragraph, and start moving in direction of opposite to the text flow (left in LTR text case). Expected: Text is selected only after the mouse passes the first symbol before the paragraph end. Actual: Paragraph end symbol is selected as soon as the mouse hovers it.
EMF images cannot be natively parsed by the WPF framework and are not supported in RadRichTextBox. Stop the exception so the document can be imported. Fix available in LIB Version 2017.2.724.
When the RadRichTextBox is focused via clicking on it or via RadRichTextBox.Focus() the visual feedback is not diplayed. Workaround: create a style trigger for that (for example for the Office2016 theme): <Style TargetType="{x:Type telerik:RadRichTextBox}" BasedOn="{StaticResource RadRichTextBoxStyle}"> <Style.Triggers> <Trigger Property="IsKeyboardFocusWithin" Value="True"> <Setter Property="BorderBrush" Value="{telerik:Office2016Resource ResourceKey=AccentFocusedBrush}" /> <Setter Property="BorderThickness" Value="1" /> </Trigger> </Style.Triggers> </Style>
IndexOutOfRangeException is thrown when some JPEG file in the document has Scan Header with fewer components than the Frame Header. The current JpegDecoder implementation requires both JPEG Headers to have the same number of components. WORKAROUND: PdfImagesCompressionMode.Automatic option may be used in the PdfFormatProvider export settings. This way all JPEG images will be exported to PDF without decoding their pixels and the PDF file will be exported successfully.
When a paragraph is triple-clicked, then the whole paragraph is selected. However, when there is a table beneath the paragraph and triple-click action is performed for the paragraph (or a selection is created including the end of the paragraph), the table's first row is selected as well.