3
我通過檢查/使用現有段落A的元素來構建新的FlowDocument段落B.令我驚訝的是,我添加到新的段落B中的元素從段落A中被奇蹟般地刪除。下面我創建了一個簡單的例子。第三行執行後,myRun元素將從myParagraphA中刪除。FlowDocument TextElements只允許單個父項
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);
感謝,
謝謝。 myRun如何克隆,因爲它沒有實現ICloneable? – aidesigner 2012-02-14 22:07:19
棘手。從您的示例中,它將只是Text屬性,但還有更多的候選人......可能會創建一個自定義克隆器,或嘗試避免它。當你使用很多東西(TextDecorations等)時,你可能會考慮序列化。 – 2012-02-14 22:14:39