The fix will be available in our official release Q1 2015.
The default styles are not copied when using the CreateDocumentFromSelection method.
Workaround: Manually copy the styles:
var document = radRichTextBox.Document.Selection.CreateDocumentFromSelection();
document.StyleRepository.Clear();
foreach (var item in radRichTextBox.Document.StyleRepository)
{
var style = new StyleDefinition(item);
document.StyleRepository.Add(style);
}
When ignoring incorrect words through the Spelling dialog and you reach the last word in the document which is incorrect, only one more word from the beginning of the document is checked prior showing a message that the check is complete. Instead, all incorrect words starting from the beginning of the document should be spellchecked. The issue is reproduced when adding the incorrect words to the dictionary. In order to reproduce the issue, only "Ignore" or "Add to Dictionary" action should be applied. When the actions are mixed, the issue is not reproduced. Workaround: before opening the spellchecking dialog, move caret at the beginning of the document this.radRichTextBox.Document.CaretPosition.MoveToFirstPositionInDocument();
HtmlFormatProvider: Exception when importing a table that has only width set. In this case, we are trying to measure some elements with float.NaN.
Workaround: Use the HtmlFormatProvider from the Document Processing library.
As a result RadDocument instances cannot be collected by the GC.
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.
PdfFormatProvider creates an invalid PDF document.
Workaround:
RadDocument radDocument = null;
XamlFormatProvider xamlformatProvider = new XamlFormatProvider();
using (FileStream inputStream = new FileStream("input.xaml", FileMode.Open))
{
Console.WriteLine("reading input file");
radDocument = xamlformatProvider.Import(inputStream);
}
var provider = new Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.DocxFormatProvider();
var bytes = provider.Export(radDocument);
var provider2 = new Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider();
var flowDoc = provider2.Import(bytes);
var provider3 = new Telerik.Windows.Documents.Flow.FormatProviders.Pdf.PdfFormatProvider();
using (Stream output = File.OpenWrite(@"output.pdf"))
{
Console.WriteLine("writing output file");
provider3.Export(flowDoc, output);
}
Console.WriteLine("done...");
Console.ReadKey();
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.
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.
The desired width of the tables is not set to 100 percent. Instead, the width of each column is set to the fixed value in dxa.
Documents containing <pre> tag and line breaks (CR LF) cause unexpected visual behavior (loss of content) and invalid layout. Sporadically, document positions seem to also get invalid which leads to exceptions.
The following HTML should generate a table with width of 600px: <table width="25px" border="1px solid black"> <tr> <td> <table width="600"> <tbody> <tr><td >Test</td></tr> </tbody> </table> </td> </tr> </table> When the same html is imported in RadRichTextBox, the table is 25px wide.
InvalidOperationException: 'ColumnSpan must be at least 1.' is thrown when importing HTML document with table column containing colspan="0". The colspan="0" has special meaning according to the HTML specification http://www.w3.org/TR/html401/struct/tables.html: ------------------- colspan = number [CN] This attribute specifies the number of columns spanned by the current cell. The default value of this attribute is one ("1"). The value zero ("0") means that the cell spans all columns from the current column to the last column of the column group (COLGROUP) in which the cell is defined. ------------------- Workaround: Preprocess the HTML, and delete all occurrences of colspan="0".