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