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