SimpleCheckBox

This page applies to WPF projects only

チェック ボックスは、オン、オフ、不定という 3 つの状態を取り得るトグルとして機能するコンテンツ コントロールです。IsChecked 状態は、チェック ボックスがオンかどうかを示します。Microsoft Expression Blend でチェック ボックスにコンテンツを配置するには、チェック ボックスをダブルクリックし、その中に要素を描画します。チェック ボックスに複数の要素を配置する場合は、[Grid] または [Canvas] などのレイアウト パネルを最初に追加する必要があります。チェック ボックスには、既定でテキストを表示することもできます。既定のテキストを編集するには、チェック ボックスを右クリックして、[テキストの編集] をクリックします。

アートボード ビュー : [SimpleCheckBox] コントロール

Cc295106.b070f542-4f36-422b-a930-be4b1311b2ca(JA-JP,Expression.30).png

コントロール テンプレートの構成要素

SimpleCheckBox コントロール テンプレートは、次の要素から構成されています。

  • BulletDecorator コンテナー : チェック ボックスをテキストと整列するために使用されます。[BulletDecorator] には、[Bullet] 要素とコンテンツ要素 ([ContentPresenter] など) の 2 つの子要素があります。[BulletDecorator] は、テキストを他の要素と整列する必要がある他のコントロール群 ([RadioButton] など) でも使用されます。

  • Bullet 要素 : CheckMark という [Path] 要素と [Border] 要素を子要素として含むグリッド パネルが含まれています。[Path] 要素は、チェック マークを描画するために使用されます。

  • ContentPresenter : このテンプレートが適用されるチェック ボックスの [Content] プロパティを表示するために使用されます。この要素はチェック ボックスのコンテンツを表示するために必要です。

    オブジェクト ビュー : [SimpleCheckBox] コントロールの基本パーツ (テンプレート)

    Cc295106.0d0b3635-222f-44ec-81d6-3bf59a1beca3(JA-JP,Expression.30).png

使用されるプロパティ トリガー

コントロール テンプレートのプロパティ トリガーは、プロパティの変更にコントロールを対応させるために使用されます。[トリガー] パネルのアイテムをクリックすると、トリガーがアクティブになると変更されるプロパティを表示できます。たとえば、SimpleCheckBox テンプレートでは、[IsChecked] プロパティが [False] になると、[CheckMark] パス要素の [Visibility] (表示状態) が [Collapsed] (折りたたみ) に変化します。他のトリガーでは、ブラシ リソースを使用して [Border] 要素の背景を変更します。

使用されるブラシ

SimpleCheckBox テンプレートでは、SimpleStyles.xaml リソース ディクショナリ内の次のブラシ リソースが使用されます。

  • [Border] 要素の [Background] プロパティは、アクティブなトリガーが存在しないときは [NormalBrush]、[IsMouseOver] が [True] のときは [MouseOverBrush]、[IsPressed] が [True] のときは [PressedBrush]、[IsEnabled] が [False] のときは [DisabledBackgroundBrush] を使用して設定されます。

  • [BorderBrush] プロパティは、アクティブなトリガーが存在しないときは [NormalBorderBrush]、[IsPressed] が [True] のときは [PressedBorderBrush]、[IsEnabled] が [False] のときは [DisabledBorderBrush] を使用して設定されます。

  • [Foreground] プロパティは、[IsEnabled] が [False] のときは [DisabledForegroundBrush] を使用して設定されます。

  • [CheckMark] 要素の [Stroke] プロパティは、[GlyphBrush] を使用してチェック マークを描画します。

ベスト プラクティスおよびデザイン ガイドライン

  • 一般に、アプリケーションのユーザー インターフェイス (UI) のデザイン時にコントロールに視覚要素を追加することが想定される場合は、テンプレートのルートとして [Grid] コントロールを使用します。Expression Blend は、既定では [Grid] コントロールなどのレイアウト パネルを検索してアクティブにします。これにより、アートボードに追加される新しい要素がレイアウト パネルの子要素になります。

  • チェック ボックスのコンテンツは、[ContentPresenter] 要素によって表示されます。[ContentPresenter] 要素は、テンプレートが適用されるコントロールの [Content] プロパティに、そのテンプレートを自動的にバインドします。この要素は、テンプレートがバインドされた親のコンテンツをチェック ボックスに表示するために必要です。

  • 使用するコントロールに、コントロール テンプレートをバインドするための属性が不足していることがあります。たとえば、[CheckBox] コントロールには、[CheckMark] 要素に対してブラシを設定するための属性がありません。この場合は、[CheckMark] のストロークにブラシを設定して、このブラシを簡単に変更できます。[CheckBox] コントロールに基づいてカスタム クラスを作成し、バインド先として適した属性を追加するか、または既存の属性にバインドすることができます。カスタム クラスの例については、「試してみよう : カスタム プロパティを持つカスタム コントロールの作成」を参照してください。

  • [CheckMark] パス要素の表示と非表示が切り替えられるため、[Grid] 要素のサイズは固定されています。[Grid] 要素のサイズが固定されていないと、チェック ボックスの選択状態が変わるたびに [ContentPresenter] 内のテキストが移動してしまいます。グリッドのサイズを固定して [CheckMark] パスを非表示にする代わりに、[CheckMark] パス オブジェクトの [Stroke] プロパティの [Opacity] を 0 に変更する方法もあります。

関連項目

タスク

試してみよう : SimpleCheckBox のチェック マーク外観のカスタマイズ