ユーザー コントロールのビジュアル状態および切り替え時間の定義
独自のユーザー コントロールを作成するとき、カスタム状態および状態グループを追加して、ユーザー コントロールの各状態に対してさまざまな外観を定義できます。 たとえば、ユーザー コントロールがトランプを表している場合は、FaceUp および FaceDown 状態を設定するといいでしょう。
注意
Silverlight プロジェクトでは、ボタンなどのシステム コントロールのテンプレートを変更する際に、既定の状態グループおよび状態が既に存在しています。新しい状態グループや状態を追加することはできません。
ユーザー コントロールの状態グループを定義するには
ユーザー コントロールをまだ定義していない場合は、プロジェクトで新しいユーザー コントロールを作成し、XAML ファイルを編集用に開きます。
詳細については、「プロジェクトでの新しいユーザー コントロールの作成」を参照してください。
ヒント
メイン ドキュメント (通常は Page.xaml) の状態グループを定義することも可能です。
[状態] パネルには、ユーザー コントロールにあるオブジェクトの既定の外観が表示されます。 ドキュメントにオブジェクトを追加する必要がある場合など、状態記録モードを終了したいときは必ず、[ベース] を選択できます。
[状態] で、[状態グループの追加] をクリックします。
新しい状態グループが追加されます。新しい名前を入力できるよう名前は強調表示されています。
これで状態を状態グループに追加できます。また、状態グループをさらに追加することもできます。
状態を状態グループに追加するには
[状態] で、状態グループ名の横にある [状態の追加] をクリックします。
新しい状態が状態グループに追加されます。新しい名前を入力できるよう名前は強調表示されています。
状態記録をオンにする状態を選択します。 ドキュメントのオブジェクトの外観への変更が、選択した状態に対して記録されます。
ヒント
状態および状態グループを指定するときは、表示するユーザー コントロールのすべてのビジュアル状態を考慮し、同時に表示したくない状態を確認します。状態グループでは一度に 1 つの状態しか表示できないため、これらの状態は同じ状態グループ一覧に含めます。たとえば、次のイメージは、トランプ ゲームのカードを表すユーザー コントロールを示しています。状態グループとしては、MouseInteraction と SideDisplayed の 2 つが定義されています。MouseInteraction 状態グループには、Click、MouseOver、および Normal の状態が含まれています。これらの状態は、同時に表示されることはありません。SideDisplayed 状態グループには、カードが表向きの FaceUp 状態と裏向きの FaceDown 状態があります。表向きのカードの上にマウス ポインターを置くことができるのは、この 2 つの状態が異なる状態グループに含まれているからです。
ユーザー コントロールの切り替え効果の再生時間を設定して状態を切り替えるには
ユーザー コントロールの切り替え時間を設定して状態グループ内の任意の 2 つの状態間で切り替えるには、[既定の切り替え効果] テキスト ボックス内をクリックして新しい時間を入力します。 これにより、ユーザー コントロールが状態グループ内の他の任意の状態に切り替わるための時間、またはその状態から切り替わるための時間が設定されます。
特定の切り替えについて既定の切り替え効果時間を上書きするには、状態の横にある [切り替え効果の追加] をクリックし、表示された一覧から特定の効果を選択します。 マウス ポインターによって強調表示される次のイメージのリスト項目は、"Click 状態から他の任意の状態へ" を意味します。ここで、矢印は "~へ (切り替え先)" を、アスタリスク (*) は、"任意の状態" を表します。
[切り替え効果の再生時間] テキスト ボックス内をクリックし、新しい時間を入力します。
トラブルシューティング
- アプリケーションのビルド時に問題が発生する場合は、正しいバージョンの Silverlight がインストールされていない可能性があります。 詳細については、「Blend 用の Silverlight ツールとランタイムのインストール」を参照してください。
次の手順
マウス クリックに対するユーザー コントロールの応答を設定できます。 詳細については、「Blend でユーザー操作に対応する状態を変更する」を参照してください。
マウス ポインターをボタンの上に移動したときにボタンが回転するようなアニメーションを追加できます。 詳細については、「Blend で状態の変更後に再生されるアニメーションを追加する」を参照してください。
Expression Community Web サイトには、状態と状態グループを使用した実例を参照できるチュートリアルのビデオが掲載されています。