Когда я вставляю UIElement
в RichTextBox
(например, Button
в BlockUIContainer
)。, я всегда получаю InvalidOperationException
с надписью «Этот элемент TextNavigator No Scoping Text» при редактировании richtextbox (особенно выберите элементы, включая элементы UIE).
Сведения об исключении:
System.Windows.Documents.TextPointer.MoveToElementEdge (ElementEdge edge)
System.Windows.Documents.TextPointer.System.Windows.Documents.ITextPointer.MoveToElementEdge (ElementEdge edge)
System.Windows.Documents.TextPointerBase.GetFollowingNonMergeableInlineContentStart (ITextPointer position)
System.Windows.Documents.TextSelection.get_PropertyPosition ()
System.Windows.Documents.TextSelection.GetCurrentValue (DependencyProperty formattingProperty)
«Этот TextNavigator» Нет текстового элемента Scoping。
Я нырнул в нее и обнаружил, что здесь было сгенерировано исключение:
internal void MoveToElementEdge(ElementEdge edge)
{
ValidationHelper.VerifyElementEdge(edge, "edge");
this.VerifyNotFrozen();
this._tree.EmptyDeadPositionList();
this.SyncToTreeGeneration();
TextTreeTextElementNode scopingNode = this.GetScopingNode() as TextTreeTextElementNode;
if (scopingNode == null)
{
throw new InvalidOperationException(SR.Get("NoScopingElement", new object[] { "This TextNavigator" }));
}
this.MoveToNode(this._tree, scopingNode, edge);
}
Кажется, проблема связана с TextTreeTextElementNode. Но я не могу больше отследить, потому что это слишком сложно для меня. Я предполагаю, что UIElement не может быть заключен в этот "TextTreeTextElementNode", и по этой причине возвращается ноль.
Я пытался выполнить поиск в Google, но не нашел никакой ценной информации, только обратная связь с Microsoft.