Подтвердить что ты не робот

С#/WPF: отключить Text-Wrap из RichTextBox

Кто-нибудь знает, как я могу отключить перенос текста RichTextBox? Например. если у меня есть большая строка, которая не помещается в окно, RichTextBox помещает часть строки, которая не может быть показана новой строке. Я хочу отключить это (и сделать его видимым только с помощью Scrollbar).

Большое спасибо.

Приветствия

4b9b3361

Ответ 1

A RichTextBox в WPF - это просто редактор для FlowDocument.
Согласно MSDN:

Текст всегда заключен в RichTextBox. Если вы не хотите, чтобы текст был завернут, затем установите PageWidth на FlowDocument, чтобы быть больше ширины RichTextBox. Однако, как только страница ширина достигнута, текст все еще обертывается.

Итак, пока вы не можете явно отключить перенос слов RichTextBox, вы можете сделать что-то вроде этого:

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

который будет иметь по существу тот же самый желаемый эффект, пока у вас не будет линии, превышающей PageWidth.

Примечание (по состоянию на июль 2015 г.): VS2015 RC позволяет wordwrap = false работать точно так, как кажется, кажется, что OP. Я считаю, что предыдущие версии Visual Studio также сделали.

Ответ 2

Если вы не хотите показывать горизонтальную полосу прокрутки, используйте MinWidth для ScrollViewer:

<RichTextBox ScrollViewer.HorizontalScrollBarVisibility="Hidden">

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

</RichTextBox>

Ответ 3

Мне также нужно было отобразить большую строку и попробовать RichTextBox, но мне не понравилось решение с установкой PageWidth of the Document к фиксированному размеру. Полоса прокрутки будет отображаться все время, а область прокрутки будет большой.

Если TextBlock достаточно, вы можете использовать это вместо этого и поместить его в ScrollViewer. Он работал идеально для меня, так как мне не нужны все дополнительные функции 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>