A WPF FlowDocument
может принадлежать только одному RichTextBox
. Однако мы хотели бы использовать один документ, который можно манипулировать в разных точках (в пространстве и времени) в пользовательском интерфейсе. Никогда не будет, что есть два RichTextBoxes
, одновременно отображающий один документ (и не может, потому что WPF будет жаловаться).Совместное использование FlowDocuments между несколькими RichTextBoxes
Использование MemoryStream
и XamlReader
/Writer
здесь не будет работать, поскольку мы хотели бы сохранить один документ и отражать изменения везде, где они используются, поэтому копирование их каждый раз не выполняется.
Есть ли другой жизнеспособный способ достичь этого? Что-то, что вы могли бы использовать в качестве базовой модели для создания FlowDocument
или около того?
Уточнение: RichTextBoxes, которые используют документ, больше не видны или где-либо в логическом/визуальном дереве, когда будет создан экземпляр другого. Хотя я, вероятно, не могу обеспечить, чтобы они уже были съедены GC. По-видимому, это вызывает проблему при повторном использовании документа сразу после удаления RichTextBox из окна; который по-прежнему вызывает исключение, что Документ уже используется в другом элементе управления.
В принципе, у вас есть набор «страниц мастера», которые отображаются один за другим, и может случиться так, что мы повторно используем документ на двух последовательных «страницах», но каждый раз создаем новый RTBox. Может быть, есть проблема или лучший способ?
Я разработал немного больше в вопросе. Нам совершенно не нужно отражать эти изменения сразу в другом месте пользовательского интерфейса. Но Документ не используется более одного раза, по-видимому, который можно обойти с помощью XamlWriter/Reader для статического контента, но не для динамических материалов :( – Joey