GUIの作成
では、さっそくアプリケーションを作成していきます。
今回作成するアプリケーションは、C1RichTextBoxコントロールとC1RichTextBoxToolbarコントロールです。
この2つのコントロールをスタックパネルで重ねます。
C1RichTextBox/C1RichTextBoxToolbarコントロールの作成
最初に、C1RichTextBox/C1RichTextBoxToolbarコントロールを作成します。
① Window要素に「Name="Window1"」と名前を付けておきます。
② StackPanelを配置します。サイズをウィンドウと同じにして、左揃えにします。
<StackPanel Height="465" HorizontalAlignment="Left" Name="StackPanel1" VerticalAlignment="Top" Width="665">
③ この中に、まずC1RichTextBoxToolbarコントロールを作成します。
ツールボックスからC1RichTextBoxToolbarコントロールをドラッグ&ドロップすると、自動的にスタックパネルの幅に設定されます。
④ 次に、ツールボックスからC1RichTextBoxコントロールをドラッグ&ドロップします。高さをスタックパネルと同じにします。
⑤ XAMLエディタで、C1RichTextBoxToolbar要素に以下のRichTextBoxプロパティの設定を追加します。
これで、C1RichTextBoxコントロールにC1RichTextBoxToolbarコントロールが連結されます。VBとC#でC1RichTextBoxコントロールの名前が違うので注意してください。
RichTextBox="{Binding ElementName= C1RichTextBox1}" <c1:C1RichTextBoxToolbar Name="C1RichTextBoxToolbar1" RichTextBox="{Binding ElementName= C1RichTextBox1}" />
RichTextBox="{Binding ElementName= c1RichTextBox1}" <c1:C1RichTextBoxToolbar Name="c1RichTextBoxToolbar1" RichTextBox="{Binding ElementName= c1RichTextBox1}" />
⑥ 以上で出来上がりです。アプリケーションを実行してテキストを入力し、ツールバーを操作してみてください。
このように、あっという間にエディタアプリケーションができあがります。
スペルチェック機能の実装とウィンドウリサイズ処理
GUIが出来上がったら、スペルチェック機能を実装します。この処理はビハインドコードで行います。
また、スペルチェック用の辞書は今回はComponentOne Studioのサンプルに同梱されている、英文用辞書ファイル「C1Spell_en-US.dct」を使用します。
この辞書をアプリケーションの実行ファイルと同じフォルダに入れておきます。
ComponentOne Studioに同梱されているスペルチェッカー用辞書ファイルは、ComponentOne Studioをインストールしたフォルダ内に格納されています。
筆者のインストール例
C:\Program Files (x86)\ComponentOne\Dictionaries
① スペルチェック機能を有効にするには、まずC1SpellCheckerクラスのインスタンスを作成します。
次に、C1SpellCheckerクラスの下層のMainDictionaryクラスにある、LoadAsyncメソッドを使用してスペルチェック用の辞書を読み込みます。
そして、LoadAsyncメソッドが返す辞書への参照をC1RichTextBoxコントロールのSpellCheckerプロパティに設定します。
これで、C1RichTextBoxコントロールのスペルチェック機能が自動的に作動するようになります。
Imports C1.WPF.RichTextBox Imports C1.WPF.SpellChecker Class MainWindow Public Sub New() InitializeComponent() Dim spell As New C1SpellChecker() spell.MainDictionary.LoadAsync("C1Spell_en-US.dct") Me.C1RichTextBox1.SpellChecker = spell End Sub End Class
using C1.WPF.RichTextBox; using C1.WPF.SpellChecker; namespace RichTB_WPF_cs { /// <summary> /// MainWindow.xaml の相互作用ロジック /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); var spell = new C1SpellChecker(); spell.MainDictionary.LoadAsync("C1Spell_en-US.dct"); this.c1RichTextBox1.SpellChecker = spell; } } }
② 試しにアプリケーションを起動し、ミススペルのある文章を入力してみると、入力が終わった時点で間違っている箇所に波線が付きます。
また、ツールバーの[ツール-]-[スペルチェック]を選ぶと、修正用のダイアログボックスが表示されます。
③ 最後に、ウィンドウをリサイズした時に、C1RichTextBox・C1RichTextBoxToolbarコントロールも連動してリサイズする処理を組み込んで出来上がりです。
Private Sub Window_SizeChanged(sender As System.Object, e As System.Windows.SizeChangedEventArgs) Handles MyBase.SizeChanged StackPanel1.Height = Window1.Height StackPanel1.Width = Window1.Width C1RichTextBox1.Width = StackPanel1.Width C1RichTextBox1.Height = StackPanel1.Height C1RichTextBoxToolbar1.Width = StackPanel1.Width End Sub
private void Window1_SizeChanged(object sender, SizeChangedEventArgs e) { StackPanel1.Height = Window1.Height; StackPanel1.Width = Window1.Width; c1RichTextBox1.Width = StackPanel1.Width; c1RichTextBox1.Height = StackPanel1.Height; c1RichTextBoxToolbar1.Width = StackPanel1.Width; }
まとめ
このように、C1RichTextBox・C1RichTextBoxToolbar・C1SpellCheckerコントロールは実に簡単にアプリケーションに実装でき、あらかじめ組み込まれている高度な機能をすぐに使うことが可能です。
今や一つのアプリケーションに、いろいろな機能を組み込んでいかないと売れない時代にもなっているようなので、少しでも開発にかかる工数を削減するのであれば、これらのコンポーネントを利用することも検討してみてはいかがでしょう。