試してみよう: ボタンへのアニメーションの追加
SimpleButton では、状態の変更をアニメーション化しません。その代わりに、状態の変更があるときにブラシ リソースを設定します。Microsoft Expression Blend では、ブラシ リソースから色へのアニメーション化ができません。次の手順では、その代わりに、プロパティ トリガーを使用してアニメーション タイムラインを開始する方法を示します。
ボタンをアニメーション化するには
Expression Blend のアートボード上に SimpleButton を描画します。
ヒント : Simple スタイルのコントロールは、[アセット] パネルの [スタイル] カテゴリにある [Simple Styles] に表示されます。一覧からコントロールを選択したら、アートボードに描画できます。
[オブジェクトとタイムライン] パネルでボタンを右クリックし、[テンプレートの編集] をポイントして [現在のテンプレートの編集] をクリックします。SimpleStyles.xaml リソース ディクショナリを変更しない場合は、[テンプレートの編集] ではなく、[コピーして編集] をクリックし、新しいテンプレートを作成してドキュメントに保存します。
コピーの作成の詳細については、「リソースの作成」を参照してください。
ヒント : テンプレートの編集モードを終了して、ドキュメントのスコープに戻るには、[オブジェクトとタイムライン] パネルのオブジェクト ツリーの上にある [スコープを <オブジェクト名> に戻す] をクリックします。
既存のテンプレートを編集するためにテンプレート編集モードに戻るには、[オブジェクトとタイムライン] パネルでテンプレートを編集するオブジェクトを右クリックし、[テンプレートの編集] をポイントして [現在のテンプレートの編集] をクリックします。
コントロール テンプレートの編集スコープで、Grid の子オブジェクトの Border を削除します。
Grid オブジェクトをダブルクリックしてアクティブにし、子オブジェクトを追加できるようにします。
グリッドに Rectangle を描画します。
Rectangle オブジェクトを右クリックして [順序] をポイントし、[最背面に移動] をクリックして ContentPresenter オブジェクトの後ろ側に動かします。
[プロパティ] パネルの [ブラシ] で、四角形の Fill プロパティに新しい値を設定します。これがボタンの既定の色になります。
ヒント : 元のテンプレートの Border 子オブジェクトは、テンプレートのバインドを使用して、テンプレートが適用されるコントロールの Background プロパティに、テンプレートの Fill プロパティをバインドします。テンプレートのバインドによって、オブジェクト プロパティをテンプレートに流用できます。これにより、同じテンプレートを使用して、背景色が異なる複数のボタンを作成できます。ただし、テンプレートにバインドされたプロパティから特定の色へのアニメーション化はできません。これは、Fill プロパティの既定の色がテンプレートに設定されているためです。
[トリガー] パネルで IsMouseOver = True トリガーをクリックし、トリガーの記録をアクティブにします。次に、[アクティブ化する際のアクション] の横にある [新しいアクションの追加] をクリックして、アニメーション タイムラインを追加します。ポインターをボタンに合わせたときにトリガーするタイムラインが存在しない場合、[タイムラインが必要です] ウィンドウが表示されます。[OK] をクリックして新しいタイムラインを作成し、記録を開始します。
ヒント : [トリガー] パネルにあるすべてのトリガーとアクションを見るには、ウィンドウのサイズを変更しなければならない場合があります。ウィンドウのサイズを変更するには、マウスを使用します。
[オブジェクトとタイムライン] で、再生ヘッド を 1 秒に移動し、[プロパティ] パネルの [ブラシ] で、Fill プロパティに新しい値を設定します。
Fill プロパティの値を変更すると、タイムラインにキーフレーム が表示されます。キーフレームは、0 秒に設定する必要はありません。ポインターがボタン上に移動すると、タイムラインでは以前の塗りつぶしから 1 秒に設定された塗りつぶしに移行するアニメーション化を行います。
[トリガー] パネルで、IsMouseOver = True トリガーを再度クリックしてアニメーション タイムラインを終了し、トリガーの記録モードに戻ります。[非アクティブ化する際のアクション] の横にある [新しいアクションの追加] をクリックします。ポインターがボタンから離れたときに実行するアニメーション タイムラインを作成または選択します。たとえば、前のタイムラインを使用して、タイムラインに Stop メソッドを選択することができます。
必要に応じて、[トリガー] パネルで他の状態のアニメーション タイムラインを作成することができます。
F5 キーを押してアプリケーションをテストし、変更結果を確認します。
関連項目
タスク
WPF コントロールのトリガーの追加と削除
単純なアニメーションの作成
概念
SimpleButton
トリガーを使用した WPF コントロールのビヘイビアーの定義
Copyright ©2011 by Microsoft Corporation. All rights reserved.