2

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 
4

1 に答える 1

4

MSDNのドキュメントによると、常に有効になっている RichTextBox コントロールのワード ラッピングを無効にする必要があると思います。

テキストは常に RichTextBox で折り返されます。テキストを折り返さない場合は、FlowDocumentのPageWidthをRichTextBox の幅よりも大きく設定します。ただし、ページ幅に達すると、テキストは折り返されます。

無効にするための明示的なプロパティはありません。次のようなことができます。

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

ここで提案されているように。

于 2013-10-25T12:39:46.750 に答える