当试图在只读范围内导出包含InlineUIContainer的文档时,在XamlFormatProvider.Serialize()中使用的XamlWriter.Save()方法会抛出StackOverflow异常。重现异常的示例代码:InlineUIContainer container = new InlineUIContainer();Button btn = new Button();btn。Content = "示例按钮";btn。宽度= 70;btn。高度= 30;容器。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);
用键盘展开所选的表,将插入符号留在所选表的边缘后面。在传递当前单元格内容之后,选择将自动扩展到下一个完整的单元格,但是如果我们继续按Shift+Arrow,则需要击键=单元格中的内容长度+ 1才能将选择扩展到下一个单元格,尽管选择高亮已经覆盖了该单元格。
有一个解决方法:你需要订阅SelectionChanged事件,并使用以下代码片段作为事件处理程序:
私人无效SelectionChanged(对象sender, EventArgs){var选择=这.radRichTextBox.Document.Selection;varcaretPosition =这.radRichTextBox.Document.CaretPosition;如果(selection.IsEmpty) {返回;}如果(select . range . last . isreversed) {caretposition . movetopposition (select . range . first . startposition);}其他的{caretPosition.MoveToPosition (selection.Ranges.Last.EndPosition);}}
在它里面,我们将插入符号移动到选区的边缘。
当表在分页符之后被拖动,然后对拖动操作执行Undo/Redo时抛出NullReferenceException。
当当前单词周围有注释标记时,拼写检查不能正确刷新。
在一些复杂的文字语言中,如泰卢固语和泰语,一些字符在新的字形中分组(例如辅音+元音)。例如,在泰卢固语中输入'p' - ' ',后跟' ' -它们组合成新的字形- 'జో',或者粘贴以下泰语字形:UI正确地显示了这一点,但是:-文本测量假设字形宽度等于其各部分(字符)宽度的总和,这是不正确的。选择和插入符号的位置因此被打乱。-在字母部分(字符)之间有文档位置,但不应该这样。—当插入符号在字形前面时,使用“Delete”键删除时,可分多个步骤(一个字符一个字符)删除该字形,但应一次删除。使用“退格”删除工作正常。-在某些语言中有一些不支持的组合。例如,在泰语中,输入'z'然后'y'将产生grapheme,但输入'w'然后'y'将不会产生grapheme,并且'y'应该被忽略。
在加载应用自定义书目样式的文档时抛出KeyNotFoundException。
作为一种解决方法,您可以在导出文档之前将当前书目样式更改为预定义样式之一。
…这.radRichTextBox。CommandExecuting += RadRichTextBox_CommandExecuting;……私人无效RadRichTextBox_CommandExecuting(对象sender, commandexutingeventargs e){如果(e.Command是SaveCommand) {这.radRichTextBox.ChangeBibliographicStyle (新的APAFifthEditionStyle ());}}