6

以下 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 中的所有内容垂直显示!

RichTextBox 中的竖排文本

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

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

编辑

如果 ScrollViewer 被拿走,那么文本会水平显示。但我需要滚动查看器。那有什么解决办法呢?

4

2 回答 2

10

可以在此处找到类似的情况。

您的问题可以通过设置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}" />
    

在这里你可以根据需要更改祖先级别,我将 RichTextBox 宽度绑定到 Window 的宽度,AncestorLevel 为 3。

于 2013-09-19T05:08:29.047 回答
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>
于 2013-09-19T05:07:42.113 回答