新規作成日 2015-10-09
最終更新日
概要
WPFの、RichTextBoxは、FormのRichTextBoxと異なり、フロードキュメントで書式付きテキストを扱います。 そのため、プログラムから、テキストを操作する場合の方法が異なります。
フロー・ドキュメントは、TextBlock、FlowDocumentScrollViewerなど、WPFで利用できる書式付きテキストを扱うコンテナで共通して使用されています。
コードの使い方
新規にWPFアプリケーションを作成して、張り付けます。
その場合は、Xamlコードの一番上に、<Windows>タグのx:Class属性に、[プロジェクト名].[コード名]が
記載されていますので、この部分を変更します。
例
<Window x:Class="RichTextBox001.MainWindow"
RichTextBoxに、プログラムで、テキストを追加する
「コンテンツの入力」ボタンを押すと、テキストが入力されます。
<Window x:Class="RichTextBox_ProgrammalyInput.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="200" Width="300">
<DockPanel>
<Button DockPanel.Dock="Bottom" Click="ContentInput">コンテンツの入力</Button>
<RichTextBox DockPanel.Dock="Top" Name="richTB">
</RichTextBox>
</DockPanel>
</Window>
using System.Windows;
using System.Windows.Documents;
namespace RichTextBox_ProgrammalyInput
{
/// <summary>
/// MainWindow.xaml の相互作用ロジック
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void ContentInput(object sender, RoutedEventArgs e)
{
// Run要素のインスタンスを作成します。
Run runFirst = new Run();
// Run要素にテキストを設定します
runFirst.Text = "プログラムからテキストを入力します。";
// Pragraph要素のインスタンスを作成します。
Paragraph paragraph = new Paragraph();
// Pragraph要素にRun要素を設定します
paragraph.Inlines.Add(runFirst);
// FlowDocument要素のインスタンスを作成します。
FlowDocument document = new FlowDocument();
document.Blocks.Add(paragraph);
// RichTextBoxのrichTBのDocumentプロパティに、Pragraph要素を代入します。
richTB.Document = document;
}
}
}
関連リンク
TextBlock コンテンツ モデルの概要(外部サイト)
WPF のコンテンツ モデル(外部サイト)
[C#/VB/XAML] コードから複数行のテキストを追加するには (WPF)(外部サイト)
Inline クラス(外部サイト)
参考文献
「[Matthew MacDonald]Pro WPF 4.5 in C#」 p902-p903を参考にしました。
※画像は、アマゾンの販売ページにリンクしています。
次のページの内容
次のページでは、...現時点では未定です。