遵循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中所有内容都垂直显示!
我希望文本水平显示。为什么这会垂直出现,我该如何解决?
我正在使用C#,WPF和.NET 4。
修改
如果ScrollViewer被取走,则文本会水平显示。但我需要滚动查看器。那么解决方案是什么?
答案 0 :(得分:10)
可以找到类似的方案here。
您可以通过设置 RichTextBox 的宽度来解决您的问题。
通过设置一些任意宽度。
<RichTextBox Margin="5" Name="richTextBoxEvents"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto"
Width="100" />
或者您可以指定父级的宽度。
<RichTextBox Margin="5" Name="richTextBoxEvents"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto"
Width="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType=Window, AncestorLevel=3}, Path=ActualWidth}" />
您可以根据需要更改祖先级别,我将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>