.png)
チェック ボックスは、オン、オフ、不定という 3 つの状態を取り得るトグルとして機能するコンテンツ コントロールです。IsChecked 状態は、チェック ボックスがオンかどうかを示します。Microsoft Expression Blend でチェック ボックスにコンテンツを配置するには、チェック ボックスをダブルクリックし、その中に要素を描画します。チェック ボックスに複数の要素を配置する場合は、Grid または Canvas などのレイアウト パネルを最初に追加する必要があります。チェック ボックスには、既定でテキストを表示することもできます。既定のテキストを編集するには、チェック ボックスを右クリックして、[テキストの編集] をクリックします。
アートボード上の表示 : SimpleCheckBox コントロール
.png)
コントロール テンプレートの構成要素
SimpleCheckBox コントロール テンプレートは、次の要素から構成されています。
BulletDecorator コンテナ : チェック ボックスをテキストと整列するために使用されます。BulletDecorator には、Bullet 要素とコンテンツ要素 (ContentPresenter など) の 2 つの子要素があります。BulletDecorator は、テキストを他の要素と整列する必要がある他のコントロール群 (RadioButton など) でも使用されます。
Bullet 要素 : CheckMark という Path 要素と Border 要素を子要素として含むグリッド パネルが含まれています。Path 要素は、チェック マークを描画するために使用されます。
ContentPresenter : このテンプレートが適用されるチェック ボックスの Content プロパティを表示するために使用されます。この要素はチェック ボックスのコンテンツを表示するために必要です。
オブジェクト表示 : SimpleCheckBox コントロールの基本パーツ (テンプレート)
.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 コントロールに基づいてカスタム クラスを作成し、バインド先として適した属性を追加するか、または既存の属性にバインドすることができます。カスタム クラスの例については、このユーザー ガイドの「試してみよう : カスタム WPF コントロールの作成」を参照してください。
CheckMark パス要素の表示と非表示が切り替えられるため、Grid 要素のサイズは固定されています。Grid 要素のサイズが固定されていないと、チェック ボックスの選択状態が変わるたびに ContentPresenter 内のテキストが移動してしまいます。グリッドのサイズを固定して CheckMark パスを非表示にする代わりに、CheckMark パス オブジェクトの Stroke プロパティの Opacity を 0 に変更する方法もあります。
先頭に戻る