CheckBox コントロールのスタイル処理のヒント
[CheckBox] コントロールは、ユーザーがマウスやキーボードなどの入力デバイスを使って行う操作に反応するオブジェクトです。3 つの状態 (オン、オフ、不定) が切り替わり、それぞれに関連付けられているイベントを起動します。
他のコントロールと同様に、[CheckBox] コントロールも既定の外観を変更できます。既定の [CheckBox] コントロールは、次のように表示されます。
[CheckBox] コントロールのプロパティ
[CheckBox] コントロールはコンテンツ コントロールです。そのため、[CheckBox] コントロールに表示するテキストは、[プロパティ] パネルの [共通プロパティ] にある [Content] プロパティで設定します。
いつ Click イベントを発行するか ([CheckBox] コントロールをクリックして選択したときや選択解除したとき、ポインターをその上に置いたとき) を決めるには、[ClickMode] プロパティを設定します。
また、[IsChecked] プロパティを設定すると、[CheckBox] コントロールがオンになって表示され、[IsThreeState] プロパティを設定すると、オンとオフだけでなく、不定の状態を取れるようになります。
オンの状態になっている、既定のシステム テンプレートを使用する [CheckBox] コントロール
これらのプロパティを設定するには、次の方法があります。
オブジェクトのプロパティを設定する アートボードに [CheckBox] オブジェクトを描いた後で、そのプロパティを直接設定します。複数の [CheckBox] コントロールで同じ値を使用する場合は、これらのプロパティをスタイルとして設定します。
プロパティをスタイルとして設定する [CheckBox] オブジェクトのプロパティをスタイル として設定すると、このスタイルを使用するすべての [CheckBox] オブジェクトのプロパティが同じ値になります。特定のオブジェクトの値を上書きすることもできます。
詳細については、「スタイルの作成」を参照してください。
[CheckBox] コントロールの外観は状態に応じて変化します。各状態の外観を変更するには、テンプレート編集モードにして、[状態] パネルで状態を選択します。詳細については、下の表と「コントロール用ビジュアル状態の定義」を参照してください。
[CheckBox] コントロールがクリックされたときに何が起こるかを指定するには、ビヘイビアーを [CheckBox] オブジェクトか、CheckBox テンプレートにあるオブジェクトにドラッグします。詳細については、「ビヘイビアーをオブジェクトに追加」を参照してください。
この他にも、Click イベントをイベント ハンドラーにフックする方法があります。詳細については、「イベントに応答するコードを記述」を参照してください。
CheckBox テンプレートのパーツ
[CheckBox] コントロールには、パーツがありません。
[CheckBox] コントロールの状態
既定では、[CheckBox] コントロールは、次の表にある CommonStates 状態グループの 4 つの状態のいずれかになります。これらの状態は、CheckBox テンプレートを変更するときに、[状態] パネルで見ることができます。
状態名 |
説明 |
---|---|
Normal |
[CheckBox] コントロールに対してユーザーが何も行わず、単に表示されているだけの状態。 |
MouseOver |
ユーザーが [CheckBox] コントロールの上にポインターを動かしたときの状態。 |
Pressed |
ユーザーが [CheckBox] コントロールをクリックしたか、[CheckBox] コントロールがフォーカスされているときに Enter キーまたはスペース バーを押したときの状態。 |
Disabled |
[IsEnabled] プロパティを [False] に設定したときの状態。 |
[CheckBox] コントロールは、次の FocusStates 状態グループに属する状態のいずれかになることができます。
状態名 |
説明 |
---|---|
Unfocused |
[CheckBox] コントロールがキーボードでフォーカスされていないときの状態。 |
Focused |
[CheckBox] コントロールがキーボードでフォーカスされたときの状態。たとえば、アプリケーション内でユーザーが Tab キーを押してフォーカスを切り替えていき、[CheckBox] コントロールにフォーカスが移った場合が相当します。 |
[CheckBox] コントロールは、次の CheckStates 状態グループにある 3 つの状態の 1 つになることができます。
状態名 |
説明 |
---|---|
Unchecked |
[CheckBox] コントロールの [IsChecked] プロパティを [False] に設定したときの状態。 |
Checked |
[CheckBox] コントロールの [IsChecked] プロパティを [True] に設定したときの状態。 |
Indeterminate |
[IsThreeState] プロパティを [True] に設定し、[IsChecked] プロパティを [Null] に設定したときの状態。 |
ヒント : |
---|
状態グループは、コントロールの表示状態を論理的に分類したものです。1 つのグループに属する複数の状態を同時に表示することはできません。たとえば、CommonStates グループには、ユーザーがマウスなどの入力デバイスで行う操作に関係のある状態が含まれています。1 つのグループ内で一度に表示できる状態は 1 つだけですが、別々のグループに属する状態を同時に表示することはできます。 |
状態を 1 つ選択すると、その状態の変更の記録が開始されます。状態の記録を無効にするには、記録ボタン をクリックするか、[状態] パネルで [ベース] を選択します。2 つの状態がアクティブになったときのコントロールの外観を変更するには、1 つのグループに属する状態のプレビューを固定しておき、別のグループに属する状態を変更します。
オブジェクトを [CheckBox] コントロールに変換するには
[CheckBox] コントロールにはパーツがないので、どのようなオブジェクトでも [CheckBox] コントロールに変換できます。
まず、オブジェクトをグループにまとめてレイアウト パネルに配置します。そのレイアウト パネルを選択し、[ツール] メニューの [コントロールの作成] をクリックします。
表示されたダイアログ ボックスで [CheckBox] を選択してテンプレートに名前を付け、テンプレートの保存場所を選択します。
保存場所については、「リソースの作成」を参照してください。
[OK] をクリックすると、Microsoft Expression Blend がテンプレート編集モードになり、[CheckBox] コントロールを構成しているオブジェクトが表示されます。
元のオブジェクトのグループに [TextBlock] オブジェクト が含まれていた場合は、この [TextBlock] オブジェクトが CheckBox コントロール テンプレートの [ContentPresenter] オブジェクト に変換されます。これで、[CheckBox] オブジェクトにテキストが表示されるようになります。元のグループに [TextBlock] オブジェクトが含まれていなかった場合は、[ContentPresenter] オブジェクトが自動的にテンプレートに追加されます。このテンプレートを適用する [CheckBox] コントロールの [Content] プロパティにテキストを表示する必要がない場合は、[ContentPresenter] オブジェクトを削除します。
このモードで、テンプレートの変更を続けます。たとえば、オブジェクトの追加や変更を行ったり、[状態] パネルで状態を選択して、この状態のテンプレートの外観を変更したりできます。
必要に応じて、このテンプレートを使うことになる [CheckBox] オブジェクトの次のプロパティと、オブジェクトのブラシ プロパティをバインドします。
Background
BorderBrush
Foreground
BorderThickness
詳細については、「オブジェクト プロパティをテンプレートに反映させる」を参照してください。
テンプレート編集モードを終了するには、アートボードの上端にある階層リンク バーの [CheckBox] をクリックするか、[オブジェクトとタイムライン] パネルの [上へスコープ] をクリックします。
新しく作成した CheckBox テンプレートを別の [CheckBox] オブジェクトに適用する方法については、「リソースの適用と削除」を参照してください。
参照
Microsoft Silverlight の [CheckBox] コントロールのプロパティとイベントの詳細については、MSDN の「Silverlight Control Gallery (Silverlight コントロール ギャラリー)」を参照してください。