RichTextBox垂直显示文本

时间:2013-09-19 04:43:26

标签: c# wpf

遵循XAML代码:

<ScrollViewer HorizontalScrollBarVisibility="Auto"
              VerticalScrollBarVisibility="Auto">

    <DockPanel LastChildFill="True">
        <TextBox Name="textBox1" DockPanel.Dock="Top" />

        <GroupBox Header="All Events" DockPanel.Dock="Top">
            <RichTextBox Margin="5" Name="richTextBoxEvents"
                         HorizontalScrollBarVisibility="Auto"
                         VerticalScrollBarVisibility="Auto" />
        </GroupBox>
    </DockPanel>
</ScrollViewer>

导致RichTextBox中所有内容都垂直显示!

Vertical text in RichTextBox

我希望文本水平显示。为什么这会垂直出现,我该如何解决?

我正在使用C#,WPF和.NET 4。

修改

如果ScrollViewer被取走,则文本会水平显示。但我需要滚动查看器。那么解决方案是什么?

2 个答案:

答案 0 :(得分:10)

可以找到类似的方案here

您可以通过设置 RichTextBox 的宽度来解决您的问题。

  1. 通过设置一些任意宽度。

    <RichTextBox Margin="5" Name="richTextBoxEvents"
                     HorizontalScrollBarVisibility="Auto"
                     VerticalScrollBarVisibility="Auto"
                     Width="100" />
    
  2. 或者您可以指定父级的宽度。

    <RichTextBox Margin="5" Name="richTextBoxEvents"
                     HorizontalScrollBarVisibility="Auto"
                     VerticalScrollBarVisibility="Auto"
                     Width="{Binding RelativeSource={RelativeSource FindAncestor, 
                     AncestorType=Window, AncestorLevel=3}, Path=ActualWidth}" />
    
  3. 您可以根据需要更改祖先级别,我将RichTextBox宽度绑定到Window的宽度,AncestorLevel为3。

答案 1 :(得分:1)

RichTextBox总是自动换行,所以我假设ScrollViewer强制它开始自动换行。

如果您删除自动可见性,那么它会按预期工作,您仍会获得滚动条:

<ScrollViewer>
        <DockPanel LastChildFill="True">
            <TextBox Name="textBox1" DockPanel.Dock="Top" />
            <GroupBox Header="All Events" DockPanel.Dock="Top">
                <RichTextBox Margin="5" Name="richTextBoxEvents" />
            </GroupBox>
        </DockPanel>
    </ScrollViewer>