Un WPF FlowDocument
ne peut appartenir qu'à un seul RichTextBox
. Cependant, nous aimerions utiliser un seul document qui peut être manipulé à différents points (dans l'espace et le temps) dans l'interface utilisateur. Il n'arrivera jamais qu'il y ait deux RichTextBoxes
simultanément affichant un seul document (et ne peut pas, parce que WPF se plaindra). L'utilisation d'un MemoryStream
et XamlReader
/Writer
ne fonctionnera pas ici car nous souhaitons conserver un document unique et refléter les modifications quel que soit l'endroit où il est utilisé, afin de le copier à chaque fois que vous le sortez.Partage de FlowDocuments entre plusieurs RichTextBoxes
Existe-t-il un autre moyen viable d'atteindre cet objectif? Quelque chose que vous pourriez utiliser comme modèle sous-jacent à partir de laquelle créer FlowDocument
s ou plus?
Clarification: Les RichTextBox utilisant le document ne sont plus visibles ou ne se trouvent nulle part dans l'arborescence logique/visuelle lorsqu'un autre sera instancié. Bien que je ne puisse probablement pas faire valoir qu'ils ont déjà été mangés par le GC. Apparemment cela cause un problème lors de la réutilisation du document immédiatement après avoir supprimé le RichTextBox de la fenêtre; cela génère toujours une exception que le document est déjà utilisé dans un autre contrôle. Fondamentalement, vous devez avoir un ensemble de "pages d'assistant" qui s'affichent les unes après les autres et il peut arriver que nous réutilisions le document sur deux "pages" successives, mais que nous instancions une nouvelle RTBox à chaque fois. Peut-être qu'il y a un problème ou un meilleur moyen?
J'ai élaboré un peu plus dans la question. Nous n'avons pas besoin de refléter ces changements immédiatement ailleurs dans l'interface utilisateur. Mais un document résiste à être utilisé plus d'une fois, apparemment, ce qui peut être contourné avec XamlWriter/Reader pour le contenu statique, mais pas pour les trucs dynamiques :( – Joey