Est-il possible de “zoomer” le texte dans un WPF RichTextBox?

J’ai remarqué que WinForms RichTextBox a une propriété ZoomFactor qui, je suppose, correspond exactement à ce que je veux. Malheureusement, cela semble totalement manquer à la variante WPF.

Est-il possible d’obtenir la même fonctionnalité (augmenter / diminuer la taille de texte visible de l’ensemble du document sans modifier réellement le format RTF sous-jacent)?

Mise à jour: Bien que définir une LayoutTransform sur la RichTextBox semble fonctionner avec des parameters très simples, ce n’est pas exactement la même chose que définir ZoomFactor à cause de quelques choses:

  • Tout d’abord, la barre de défilement est également zoomée. Cela semble juste idiot.
  • Deuxièmement, dans mon application (pour une raison quelconque, mais pas dans Kaxaml – j’explorerai cela pour comprendre pourquoi), le texte est zoomé en mode point, de sorte qu’il agrandit simplement le texte affiché plutôt que de le zoomer vectoriel pour qu’il soit lisse . Voici un exemple de ce dont je parle (notez la barre de défilement personnalisée Way-Big):

texte alt http://img822.imageshack.us/img822/298/3b7e4e04afc943ff85b2a98.png

Mise à jour 2: OK, j’ai découvert que le zoom sur un bitmap était dû à la définition de TextOptions.TextFormattingMode sur Display au lieu de Ideal . Le réglage idéal réintroduit le zoom vectoriel.

Cependant, il y a toujours cette barre de défilement embêtante! Je veux dire une option est de désactiver le défilement sur la RichTextBox et de l’envelopper dans un ScrollViewer, mais je me demande si cela détériorerait les performances. Je me demande également si le wrapping de texte fonctionnerait toujours si je le faisais.

Cela devrait vous aider à démarrer:

           

J’ai remarqué que WinForms RichTextBox a une propriété ZoomFactor qui, je suppose, correspond exactement à ce que je veux. Malheureusement, cela semble totalement manquer à la variante WPF.

Vous devez revenir en arrière et lire les bases de WPF. Item par Item. Arrêtez-vous à TRANSFORMS. La raison pour laquelle il manque un ZoomFactor dans la zone de texte est que CHAQUE CONTRÔLE WPF peut être TRANSFORMÉ (zoom, transformation 3D) et ANIMÉ par des mesures standard génériques – une approche spéciale est tout simplement inutile.

Jetez un coup d’œil à FlowDocumentReader, car je pense que c’est ce que vous recherchez.