2009-09-02 61 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>