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

Popular posts from this blog

TFS: 別PCでのチェックアウトを取り消す

WPFアプリにアニメーションGIFを表示させる