C1RichTextBoxToolbar コントロールを使用すると、C1RichTextBox コントロールで使用できる完全なツールバーを追加できますが、独自のツールバーを簡単に作成することもできます。ほとんどの高機能エディタには、現在の選択に太字、斜体、または下線の書式設定を適用するボタンを含むツールバーがあります。選択範囲が移動すると、これらのボタンの状態も変化し、選択されているテキストに太字、斜体、下線などの書式設定が適用されているかどうかが示されます。
C1RichTextBox を使用してシンプルなツールバーを実装するのは簡単です。たとえば、次の手順に従います。
ソリューションエクスプローラで、プロジェクトを右クリックし、コンテキストメニューから[参照の追加]を選択します。
[参照の追加]ダイアログボックスで、C1.WPF.RichTextBox.4 または C1.Silverlight.RichTextBox.5 アセンブリを選択したら、[OK]をクリックします。
ページの XAML を更新します。次のようになります。
XAML |
コードのコピー
|
---|---|
<Window xmlns:c1="http://schemas.componentone.com/winfx/2006/xaml"x:Class=" C1RichTextBoxIntro.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow"> <Grid x:Name="LayoutRoot" Background="White"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition /> </Grid.RowDefinitions> <StackPanel Orientation="Horizontal" > <ToggleButton x:Name="_btnBold" Content="B" Click="_btnBold_Click" Checked="_btnBold_Click" /> <ToggleButton x:Name="_btnItalic" Content="I" Click="_btnItalic_Click" /> <ToggleButton x:Name="_btnUnderline" Content="U" Click="_btnUnderline_Click" /> </StackPanel> <c1:C1RichTextBox x:Name="_rtb" Grid.Row="1" AcceptsReturn="True" SelectionChanged="_rtb_SelectionChanged"/> </Grid> |
ページを右クリックし、[コードの表示]を選択してコードエディタに切り替えます。
次のコードをアプリケーションに追加します。
このコードは、最初に現在の選択範囲の FontWeight プロパティの値を取得します。null 可能な値が返されます(したがって、型宣言に '?' があります)。選択範囲に複数のフォントウェイトが混在している場合は、null 値が返されます。上のコードでは、選択範囲全体に単一のフォントウェイトとして太字が設定されている場合はフォントウェイトを "normal" に設定し、それ以外の場合はフォントウェイトを "bold" に設定しています。次のコードを追加して、斜体ボタンを初期化します。
次のコードを追加して、下線ボタンを初期化します。
次のコードを追加して、SelectionChanged イベントのイベントハンドラを実装します。
このイベントハンドラは、ユーザーが選択範囲を移動するのに合わせてボタンの状態を変更します。たとえば、太字で下線付きの単語を選択すると、それらのボタンが押下した状態になります。簡単なツールバーを作成しました。実行すると、アプリケーションは次の画像のようになります。
テキストを入力し、太字、斜体、下線の各ボタンを押下すると、上の図のようにテキストを書式設定できます。
完全なツールバーには、さらに多くのボタンとコントロールが含まれますが、同様の方法で処理されます。ComponentOne for WPF には、完全なツールバー C1RichTextBoxToolbar が別のアセンブリとして含まれます。C1RichTextBoxToolbar コントロールのソースコードが付属しているため、カスタマイズしたツールバーを作成できます。詳細については、「C1RichTextBoxToolbar の使い方」を参照してください。