Numbered lists have invalid values when combining documents by using the InsertFragment method.
Workaround: use RadDocumentMerger:
RadDocument radDocument1 = RtfSourceProvider.Import(rtf1);
RadDocument radDocument2 = RtfSourceProvider.Import(rtf2);
AppendDocumentOptions options = new AppendDocumentOptions();
options.FirstSourceSectionPropertiesResolutionMode = SectionPropertiesResolutionMode.NoSectionBreak;
RadDocumentMerger merger = new RadDocumentMerger(radDocument1);
merger.AppendDocument(radDocument2, options);
RichText.Document = merger.Document;
Multi-byte Unicode characters can be represented as multiple ANSI characters in the form \'xx, for example:
\'89\'ce can represent the character 火 if multi-byte encoding should be used. Using multi-byte encoding could be set explicitly using the \ucN tag, or implicitly using the \fcharset for the current font (e.g. \fcharset134 is double-byte).
When such text is imported (commonly CJK text [Chinese, Korean, Japanese] the characters are imported incorrectly (as two '?' or as two different characters for each character)
Such RTF documents are produced from Office 2010 (Word, Outlook), WordPad - on saving or on copying content from the applications.
I have no idea how to reproduce this, but every so often after a paste operation into a RadRichTextBox, the host thread becomes unresponsive to user input. The message pump is still running but the following unhandled exception gets thrown in a tight infinite loop. The only way to close the window is to right click on the taskbar button.
System.NullReferenceException
Message: Object reference not set to an instance of an object.
Call Stack:
at Telerik.Windows.Documents.Layout.LayoutElement.SetParent(LayoutElement newParent)
at Telerik.Windows.Documents.Layout.LayoutBox.EnsureParent()
at Telerik.Windows.Documents.Layout.LayoutBox.get_Parent()
at Telerik.Windows.Documents.Layout.FormattingSymbolLayoutBox.get_IsEndOfCell()
at Telerik.Windows.Documents.Layout.FormattingSymbolLayoutBox.GetFormattingSymbolVisual()
at Telerik.Windows.Documents.SpanBoxPositionHandler.get_Location()
at Telerik.Windows.Documents.UI.DocumentWebLayoutPresenter.GetViewPointFromDocumentPosition(DocumentPosition position)
at Telerik.Windows.Controls.RichTextBoxUI.PasteOptionsPopup.CalculateLocation()
at Telerik.Windows.Controls.RichTextBoxUI.PasteOptionsPopup.OnOwnerLayoutUpdated(Object sender, EventArgs e)
at System.Windows.ContextLayoutManager.fireLayoutUpdateEvent()
at System.Windows.ContextLayoutManager.UpdateLayout()
at System.Windows.ContextLayoutManager.UpdateLayoutCallback(Object arg)
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
this.radRichTextBox.PreviewEditorKeyDown += (sender, args) =>
{
if (Keyboard.Modifiers.HasFlag(ModifierKeys.Alt) && Keyboard.Modifiers.HasFlag(ModifierKeys.Control) && args.Key == Key.E)
{
args.SuppressDefaultAction = true;
args.OriginalArgs.Handled = true;
this.radRichTextBox.Insert("€");
}
};