.png)
チェック ボックスは、オン、オフ、不定という 3 つの状態を取り得るトグルとして機能するコンテンツ コントロールです。IsChecked 状態は、チェック ボックスがオンかどうかを示します。Microsoft Expression Blend でチェック ボックスにコンテンツを配置するには、チェック ボックスをダブルクリックし、その中にオブジェクトを描画します。チェック ボックスに複数のオブジェクトを配置する場合は、最初に Grid または Canvas などのレイアウト パネルに追加する必要があります。チェック ボックスには、既定でテキストを表示することもできます。既定のテキストを編集するには、チェック ボックスを右クリックして、[テキストの編集] をクリックします。
アートボード上の [SimpleCheckBox] コントロール
.png)
コントロール テンプレートの構成要素
SimpleCheckBox コントロール テンプレートは、次の要素で構成されています。
BulletDecorator コンテナー: チェック ボックスをテキストと整列するために使用されます。BulletDecorator には、箇条書き記号とコンテンツ オブジェクト (ContentPresenter など) の 2 つの子があります。BulletDecorator は、別のオブジェクトに対してテキストを配置する必要のある他のコントロール (RadioButton など) で使用されます。
Bullet 要素: CheckMark という Path 要素と Border 要素を子要素として含む Grid パネルが含まれています。Path 要素は、チェック マークを描画するために使用されます。
ContentPresenter: このテンプレートが適用されるチェック ボックスの Content プロパティを表示するために使用されます。この要素はチェック ボックスのコンテンツを表示するために必要です。
使用されるプロパティ トリガー
コントロール テンプレートのプロパティ トリガーは、プロパティの変更にコントロールを対応させるために使用されます。[トリガー] パネルのアイテムをクリックすると、トリガーがアクティブになると変更されるプロパティを表示できます。たとえば、SimpleCheckBox テンプレートでは、IsChecked プロパティが False になると、CheckMark パス要素の表示状態が Collapsed (折りたたみ) に変化します。他のトリガーでは、ブラシ リソースを使用して Border 要素の背景を変更します。
使用されるブラシ
SimpleCheckBox テンプレートでは、SimpleStyles.xaml リソース ディクショナリ内の次のブラシ リソースが使用されます。
Border 要素の Background プロパティは、NormalBrush (アクティブなトリガーがないとき)、MouseOverBrush (IsMouseOver が True のとき)、 PressedBrush (IsPressed が True のとき)、および DisabledBackgroundBrush (IsEnabled が False のとき) を使用して設定されます。
BorderBrush プロパティは、NormalBorderBrush (アクティブなトリガーがないとき)、PressedBorderBrush (IsPressed が True のとき)、および DisabledBorderBrush (IsEnabled が False のとき) を使用して設定されます。
Foreground プロパティは、DisabledForegroundBrush (IsEnabled が False のとき) を使用して設定されます。
CheckMark 要素の Stroke プロパティは、GlyphBrush を使用してチェック マークを描画します。
ベスト プラクティスおよびデザイン ガイドライン
一般に、コントロールにビジュアル要素を追加する予定がある場合は、テンプレートのルートとして Grid コントロールを使用してください。Expression Blend は、既定では Grid コントロールなどのレイアウト パネルを検索してアクティブにします。これにより、アートボードに追加される新しいオブジェクトがレイアウト パネルの子オブジェクトになります。
チェック ボックスのコンテンツは、ContentPresenter 要素によって表示されます。ContentPresenter 要素は、テンプレートが適用されるコントロールの Content プロパティに、そのテンプレートを自動的にバインドします。このオブジェクトは、テンプレートがバインドされた親のコンテンツをチェック ボックスに表示するために必要です。
使用するコントロールに、コントロール テンプレートをバインドするための属性が不足していることがあります。たとえば、CheckBox コントロールには、CheckMark オブジェクトに対してブラシを設定するための属性がありません。この場合は、CheckMark のストロークにブラシを設定して、このブラシを簡単に変更できます。CheckBox コントロールに基づいてカスタム クラスを作成し、バインド先の属性を追加するか、または既存の属性にバインドすることができます。カスタム クラスの例については、「試してみよう: カスタム プロパティを持つカスタム コントロールの作成」を参照してください。
CheckMark パス オブジェクトの表示と非表示を切り替えるため、Grid オブジェクトのサイズは固定されています。Grid 要素のサイズが固定されていないと、チェック ボックスの選択状態が変わるたびに ContentPresenter 内のテキストが移動してしまいます。Grid のサイズを固定して CheckMark パスを非表示にする代わりに、CheckMark パス オブジェクトの Stroke プロパティの Opacity を 0 に変更する方法もあります。
関連項目
タスク
試してみよう: SimpleCheckBox のチェック マーク外観のカスタマイズ
Copyright ©2011 by Microsoft Corporation. All rights reserved.