2009-09-02 147 views

回答

27

在WPF甲RichTextBox是简单地用于一个FlowDocument编辑。
MSDN

文本始终包裹在RichTextBox中。如果 你不想文字换行然后在FlowDocument到 比 RichTextBox的的宽度设定 的PageWidth。但是,一旦达到页面宽度,文本仍然包装。

所以,虽然没有办法给你明确禁用RichTextBox的自动换行,你可以做这样的事情:

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

这将有本质上,直到你有相同的预期效果一条线超出了PageWidth

备注(截至2015年7月):VS2015 RC允许wordwrap = false按照OP的要求精确工作。我相信早期版本的Visual Studio也有。

+0

谢谢!工作就像一个魅力 – 2009-09-03 11:26:58

+6

我不喜欢的解决方案,因为那么水平Scroolbar始终可见... – Elisabeth 2010-11-02 11:25:07

+0

这将是很好,如果你可以设置时,检测(不知何故),包装是必要的(例如检查每个“运行” [段]宽度或东西),然后再将其关闭不需要时(监视文本的变化来检查每次,虽然它可能会慢) – 2014-09-07 00:08:05

0

我还需要显示一个大字符串,并尝试使用RichTextBox,但我不喜欢将Document的PageWidth设置为固定大小的解决方案。滚动条将始终可见,并且滚动区域很大。

如果一个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> 
+0

一个TextBlock不可编辑,加上我不认为它支持丰富的格式化 – 2014-09-07 00:00:41

+1

@GeorgeBirbilis TextBlock不可编辑,但它支持使用嵌套格式化标签丰富的格式。粗体,超链接等 – SepehrM 2014-10-14 12:14:40

1

如果你不希望显示水平滚动条,执行对ScrollViewer中一个MinWidth:

<RichTextBox ScrollViewer.HorizontalScrollBarVisibility="Hidden"> 

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

</RichTextBox>