gpt4 book ai didi

c# - FlowDocument TextElements 只允许单亲

转载 作者:行者123 更新时间:2023-11-30 18:01:14 25 4
gpt4 key购买 nike

我通过检查/使用现有 Paragraph A 的元素构建了一个新的 FlowDocument Paragraph B。令我惊讶的是,我添加到新 ParagraphB 的元素被神奇地从 ParagraphA 中删除了。我在下面创建了一个简单的插图。第 3 行执行后,myRun 元素将从 myParagraphA 中删除。

1) 如何?使 myParagraphA 从其内联集合中删除 myRun 的底层机制是什么?

2)为什么?我假设设计师不希望一个元素有 2 个父元素。

3) 如果我的观察是正确的,我想我必须将 myRun 的副本添加到 myParagraphB 以避免破坏 myParagraphA。复制 myRun 及其文本和属性(克隆)的最佳方法是什么?这是一个性能损失,因为我实际上会经常执行此操作。

var myRun = new Run("Hello");
var myParagraphA = new Paragraph(myRun);
var myParagraphB = new Paragraph(myRun);

谢谢,

最佳答案

一个项目一次只能出现在一个列表中是很常见的。您通常会看到一个 Parent 属性(注意:单数)。 XmlElement、TreeViewItem 等就是这种情况。

因此,通过将 Run 添加到 myParagraphB,您可以覆盖其 Parent 属性,并且对该属性进行适当的编码会将其从 myParagraphA 的内联列表中删除。

解决方案确实是:克隆。

关于c# - FlowDocument TextElements 只允许单亲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9284594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com