WPF の RichTextBox に文字列を設定する&取り出す
WPF の RichTextBox は内部に FlowDocument オブジェクトを持っていて、一部分の文字のスタイルを変えたり、表や画像を表示したりといった高度な文章表現ができるが、普通の TextBox と違って Text プロパティを持っていないので、直接文字列を読み書きすることができない。少々面倒だが、FlowDocument からテキスト領域を取り出して、そこに対して文字列を読み書きする、という風に実装しなければならない。 文字列の取得、設定でキーになるのが TextRange クラス。XAML で <RichTextBox Name="richTextBox"/> のように RichTextBox を宣言していたとすると、文字列の設定は FlowDocument document = this.richTextBox.Document; TextRange range = new TextRange(document.ContentStart, document.ContentEnd); range.Text = "ABCDEFG"; となる。設定する文字列がテキストファイルから読み込んだ文字列で、途中に改行が入っている場合は、1行1パラグラフになる。逆に文字列の取得は FlowDocument document = this.richTextBox.Document; TextRange range = new TextRange(document.ContentStart, document.ContentEnd); string text = range.Text;
Comments
Post a Comment