我试图在WPF RichTextBox控件中显示大量数据。 我的数据包含空格字符。有一个默认的自动换行行为,不允许“单词”分割并显示在更多行上。
此行为由空格字符,问号,句号或任何其他句子/单词分隔符触发。在下面的示例中,如果用字母替换空格字符(例如:“X”),则所有内容都将按预期显示。由于没有找到分隔符字符,因此允许将大“字”截断并显示在多行上。
有没有办法禁用这个单词/句子包装行为?
这是XAML代码:
<Window x:Class="StackOverQuestion_TextBoxWrap.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="535">
<Grid>
<RichTextBox Name="RichTextBox" />
</Grid>
</Window>
这是背后的cs代码:
public MainWindow()
{
InitializeComponent();
Random rnd = new Random();
RichTextBox.FontFamily = new System.Windows.Media.FontFamily( "Lucida Console" );
Paragraph par = new Paragraph();
for ( int i = 0 ; i < 6000 ; i++ )
{
Run run = new Run();
run.Text = rnd.NextDouble().ToString() + " " ;
par.Inlines.Add( run );
}
RichTextBox.Document.Blocks.Add( par );
}
不受欢迎的包装行为:(请注意不同长度的线条)
0.562230281327958 0.269015421750497 0.130114109315963 0.527640242375266 0.592048898149305
0.73868335026255 0.478530279117883 0.939313878276997 0.890535918479104 0.00047110533363703
0.546423877378192 0.780972927241108 0.697112546626997 0.66897076306351 0.634957212319112
0.498651245375467 0.808829494662969
所需的包装行为:(请注意相同长度的行)
0.562230281327958 0.269015421750497 0.130114109315963 0.527640242375266 0.592048898149305
0.73868335026255 0.478530279117883 0.939313878276997 0.890535918479104 0.0004711053336370
3 0.546423877378192 0.780972927241108 0.697112546626997 0.66897076306351 0.63495721231911
2 0.498651245375467 0.808829494662969
答案 0 :(得分:4)
根据MSDN中的文档,我认为您需要在RichTextBox控件中禁用自动换行,该控件始终处于启用状态:
文本始终包含在RichTextBox中。如果你不想要文字换行 然后将PageWidth上的FlowDocument设置为大于宽度 RichTextBox。但是,一旦页面宽度达到文本 仍然包裹着。
没有明确的属性可以禁用它,你可以这样做:
richTextBox1.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;
richTextBox1.Document.PageWidth = 1000;
建议here。