将UIElement插入其中时,RichTextBox崩溃了

时间:2012-02-20 03:17:46

标签: c# wpf richtextbox uielement

当我将UIElement插入RichTextBox时(例如Button中的BlockUIContainer)。我总是得到一个InvalidOperationException说“This TextNavigator No Scoping文本元素“当我编辑richtextbox时(特别是包括UIElements的选择元素)。

例外情况:

  

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”无范围文本元素。

我潜入其中,发现异常被抛出:

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”包裹,这会导致返回null。

我曾尝试搜索谷歌,但发现没有任何有价值的信息只是对微软的反馈。

0 个答案:

没有答案