さまざまな状態に応じたシステム コントロールの外観の変更
コントロールは、どのような状態にあるかによって外観が変化します。たとえば、ボタンは、マウス ポインタでその上を移動したときに、わずかに色が変わります。"MouseOver" は、ボタンの状態の一種です。システム コントロールのさまざまな状態に合わせて、外観をカスタマイズできます。
次の手順ではボタンを使用していますが、Microsoft Expression Blend 2 に組み込まれているすべてのシステム コントロール、および Control クラスから継承する、インポートしたすべてのカスタム Silverlight 2 コントロールをカスタマイズできます。
さまざまな状態に応じたボタンの外観を変更するには
Button コントロールなどのシステム コントロールに再利用できるテンプレートを作成します (「システム コントロール用の再利用可能なテンプレートの作成」を参照)。
テンプレート編集モードで表示していない場合は、アートボードのコントロールを右クリックし、[コントロール パーツ (テンプレート) の編集] をポイントして、[テンプレートの編集] をクリックします。また、オブジェクトを選択して、階層リンク バーの [テンプレート] をクリックすることもできます。
テンプレートの編集モードで表示している場合は、ボタンの状態 (Normal や MouseOver など) が、[組み合わせ] パネルの [状態] の下に表示されます。状態は、状態グループ (CommonStates や FocusStates など) にまとめられています。
テンプレートの各パーツは、[オブジェクトとタイムライン] の下に表示されます。これらのパーツの外観を、選択した状態に合わせて変更できます。
[ステート] の下の [MouseOver] をクリックします。アートボードの上部に赤い円が表示され、状態の記録がオンになったことが示されます。これにより、選択した状態について、プロパティの変更が記録されます。[オブジェクトとタイムライン] では、展開ボタンの周囲に赤い円が表示され、Base を選択したときとは異なる設定のプロパティを持つテンプレートのパーツが示されます。
MouseOver 状態のボタンのサイズを変更するには、[オブジェクトとタイムライン] の [グリッド] をクリックします。
ヒント : [グリッド] は、水平方向、垂直方向、および余白に従って子オブジェクトを整列させるレイアウト パネルです。レイアウト パネルの詳細については、「レイアウトの概要」および「グリッド パネル」を参照してください。
[プロパティ] パネルの [変換] で、[拡大縮小] タブをクリックします。X および Y の値を、1.1 に変更します。
作業内容を保存し (Ctrl + S)、F5 キーを押して、アプリケーションをビルドおよびテストします。ブラウザ ウィンドウにアプリケーションが開いたら、マウス ポインタをボタンの上に移動し、ボタンが拡大表示されるかどうかを確認します。
トラブルシューティング
一部のテンプレート パーツには、テンプレート外部の値にバインドされるプロパティがあります。たとえば、Background パーツの Fill プロパティは、ボタンの Background プロパティに "テンプレート バインド" されます。これは、このテンプレートを使用するボタンを描画するときに、テンプレートでは、ボタン自体に設定した値が使用されることを意味します。テンプレート バインドを使用すると、カスタマイズされたコントロールをデザインすることができますが、アプリケーション内にコントロールを組み込むときに、何らかの変更が生じる場合があります。
テンプレート内では、バインドされたプロパティはオレンジ色の境界ボックスで示されます。テンプレート バインドされたプロパティを変更する場合は、最初に、プロパティの隣にある [詳細プロパティ オプション] ボタンをクリックして、[リセット] をクリックします。
システム コントロールのテンプレートに、カスタムの状態や状態グループを追加することはできません。ただし、カスタム ユーザー コントロールを作成してから、カスタムの状態を定義しコードを追加して、ユーザー操作に基づいて状態を変更することはできます。詳細については、「Silverlight 2 プロジェクトでの新しいユーザー コントロールの作成」、「ユーザー コントロールのビジュアル状態および切り替え時間の定義」、および「ユーザー操作への応答でのステートの変更」を参照してください。
アプリケーションをブラウザで表示するときに問題が発生した場合は、Silverlight 2 ランタイムを適切にインストールできなくなる可能性があります。詳細については、「Silverlight 2 ツールとランタイムのインストール」を参照してください。
次の手順
マウス ポインタをボタンの上に移動したときのボタンの拡大表示にかかる時間を変更できます。詳細については、「システム コントロール状態の切り替え時間の変更」を参照してください。
マウス ポインタをボタンの上に移動したときにボタンが回転するようなアニメーションを追加できます。詳細については、「状態の変更後に再生されるアニメーションの追加」を参照してください。
このテンプレートをプロジェクト内の別のボタンに適用したり、テンプレートが既に割り当てられている新しいボタンを描画したりできます。詳細については、「スタイル リソースの適用」を参照してください。