C#/ WPF: Disable Text-Wrap of RichTextBox

est ce que quelqu'un sait comment je peux désactiver l'habillage du texte d'un RichTextBox? E. g. si j'ai une grande chaîne qui ne rentre pas dans la fenêtre, le RichTextBox lieux la partie de la chaîne qui ne peut pas être affichée d'une nouvelle ligne. Je veux le désactiver (et de le rendre visible uniquement par l'aide de la ).

Merci beaucoup.

Cheers

19
demandé sur Dave Clemmer 2009-09-02 18:30:41

3 réponses

RichTextBox dans WPF est simplement un éditeur pour un FlowDocument.

Selon MSDN:

toujours le Texte s'enroule dans un RichTextBox. Si vous ne voulez pas que le texte se répartit ensuite définir PageWidth sur le FlowDocument pour être supérieure à la largeur de la RichTextBox. Cependant, une fois la page la largeur est atteinte le texte encore envelopper.

Donc, il n'y a aucun moyen pour vous de désactiver explicitement le mot de l'habillage d'un RichTextBox, vous pouvez faire quelque chose comme ceci:

richTextBox1.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;
richTextBox1.Document.PageWidth = 1000;

qui aura essentiellement le même effet désiré jusqu'à ce que vous ayez une ligne qui dépasse le PageWidth.

Remarque: (à partir de juillet 2015) : VS2015 RC allows wordwrap = false travailler précisément comme OP semble le vouloir. Je crois que les versions précédentes de Visual Studio l'ont fait aussi.

30
répondu Donut 2015-07-06 18:26:57

si vous ne voulez pas afficher la barre de défilement horizontale, appliquez une MinWidth sur le ScrollViewer:

<RichTextBox ScrollViewer.HorizontalScrollBarVisibility="Hidden">

    <RichTextBox.Resources>
        <Style TargetType="ScrollViewer">
            <Setter Property="MinWidth" Value="2000" />
        </Style>
    </RichTextBox.Resources>

</RichTextBox>
1
répondu Peterson Salamat 2015-10-12 21:28:08

j'avais aussi besoin d'afficher une grande chaîne et j'ai essayé la RichTextBox mais je n'ai pas aimé la solution avec la mise en page du Document à une taille fixe. La barre de défilement était visible tout le temps et la zone de défilement était trop grande.

si un texte est suffisant, vous pouvez l'utiliser à la place et le placer dans un ScrollViewer. Cela a fonctionné parfaitement pour moi puisque je n'avais pas besoin de toutes les fonctionnalités supplémentaires de la RichTextBox.

<ScrollViewer Width="200"
              Height="100"
              HorizontalScrollBarVisibility="Auto"
              VerticalScrollBarVisibility="Auto">
                  <TextBlock TextWrapping="NoWrap">
                      <TextBlock.Text>
                          Very long text Very long text Very long text 
                      </TextBlock.Text>
                  </TextBlock>
</ScrollViewer>
0
répondu TGasdf 2011-03-16 20:04:32