2016-04-14 2 views
0

Mon application WPF affiche beaucoup d'extraits de texte à différents endroits sur une grande toile (une sorte de post it app)Comment charger un objet FormattedText WPF (de RTF ou RichTextBox)

Je rends actuellement le texte en utilisant des objets FormattedText et en les «dessinant» directement dans des objets visuels (pour la vitesse/efficacité)

Défi J'ai comment charger/enregistrer/éditer ce texte riche. Je voudrais utiliser un RichTextBox pour modifier le texte - mais je ne trouve pas un moyen de sortir le texte de la zone de texte et dans un objet FormattedText (ou vice versa)

Tout le monde sait comment cela peut être atteint? La seule façon que je puisse penser est d'avoir une sorte de capacité 'serialise to/from RTF' sur l'objet FormattedText - mais cela ne semble pas exister.

Merci

+0

Que diriez-vous ceci: http://www.wpfmentor.com/2009/01/how-to-transfer-rich-text -from.html – Clemens

Répondre

1

Vous pouvez parcourir tous les objets en ligne à l'intérieur de la RichTextBox.Document, obtenir toutes les propriétés de dépendance qui vous intéressent, puis paramétrez sur un nouvel objet FormattedText.

var formattedTextToDraw = new List<FormattedText>(); 

foreach (var paragraph in RichTextBox.Document.OfType<Paragraph>()) 
{ 
    foreach(var inline in paragraph) 
    { 
     formattedTextToDraw.Add(new FormattedText(
      inline.Text, //Text 
      inline.FontSize, //Fontsize 
      inline.Foreground, //Color 
      etc....) //Other properties for FormattedText constructor 
    } 
}