2010-10-22 34 views
1

Je souhaite afficher du texte formaté dans une application WPF client que l'utilisateur peut sélectionner et copier dans un mot.Afficher du texte mis en forme dans WPF que l'utilisateur peut copier au mot

Il doit être facilement créé par l'application, et la plus grande chose de mise en forme à l'intérieur est une table où certaines cellules sont alignées à droite.

Quoi de mieux à utiliser ici? Un contrôle richtext est difficile à remplir (je pense) et html n'est pas facile à montrer, n'est-ce pas?

Répondre

1

Bien sûr que RichTextBox devrait être votre réponse.

Vous auriez un RichTextBox contenant un FlowDocument contenant Tables.

A partir de ce premier article:

Le contrôle RichTextBox vous permet de contenu d'affichage ou de flux d'édition, y compris paragraphes, des images, des tableaux, et plus encore. Cette rubrique présente la classe TextBox et fournit des exemples d'utilisation de dans les langages de balisage (XAML) et C# de l'application extensible .

<RichTextBox> 
    <FlowDocument> 
    <Table> 
     <TableRowGroup> 
     <TableRow> 
      <TableCell> 
      <!-- One or more Block-derived object… --> 
      </TableCell> 
     </TableRow> 
     </TableRowGroup> 
    </Table> 
    </FlowDocument> 
</RichTextBox> 

Lorsque le contenu est copié à partir d'un RichTextBox, il est traité comme RTF standard, Word reconnaîtra la plupart (sinon la totalité) de la mise en forme. Une réflexion intéressante: Les FlowDocuments sont étroitement liés au format de fichier XPS, que Windows 7/Vista peut imprimer nativement. Il y a une énorme quantité d'interopérabilité entre Silverlight/WPF/XPS et dans une certaine mesure même les fichiers Word 2007 docx. Je me souviens même vaguement de l'édition d'un fichier XPS dans le concepteur WPF de Visual Studio - mais ne me citez pas là-dessus, puisque c'était il y a quelques années et je ne me souviens pas exactement de ce que j'ai fait.