ゆらゆら動く TextBlock

WPF と Expression Blend を使ってプログラムを起動した直後からゆらゆらと動いている TextBlock を作ります。画面のラベルなどとして使うことを想定しています。

開発環境:
・ Expression Blend 4

目次:
1.新規プロジェクト作成
2.TextBlock を貼り付ける
3.トリガー(E) 設定
4.ストーリーボード
4.1.TextBlock を4秒でぐるっと一回転移動
4.2.無限に動作を続ける
4.3.TextBlock の移動を「ひし形」から「円形」へ変える
5.おしまい


1.新規プロジェクト作成

Expression Blend で新規プロジェクトを作成します。ここでは「WPF アプリケーション」として作成します。

 

2.TextBlockを貼り付ける

TextBlock をアプリケーションに貼り付け、適当な文字列へ変更します。
ここでは"Wavering TextBlock"という文字列に変えました。合わせてフォントサイズやフォントなどを適当に変更します。

 

3.トリガー(E) 設定

トリガー(E)のタブを選択し、「+イベント」を押下します。


「「Window」.「Loaded」の発生時」 の右側にある「+」を押下します。
すると下図のようなストーリーボード追加の確認メッセージが出るので、「OK」を押します。


すると下図のようなストーリーボード作成の画面になります。

 

4.ストーリーボード

4.1.TextBlock を4秒でぐるっと一回転移動する

続けて今回のメインテーマであるストーリーボードの設定を行います。
まずストーリーボードの編集を行いやすくするために「F6」を押します。すると次のような画面になります。


まず、0秒の場所に「キーフレーム」を作成します。


同様に反復し、1,2,3,4 秒の場所でTextBlockをそれぞれ移動し、それぞれのキーフレームを記録します。0秒と4秒は同じ場所になるようにします。


これでプログラムを起動すると TextBlock がひし形に移動します。「F5」を押して確認してください。
おや、一回転移動すると動作を停止してしまいます。次はこれを修正しましょう。

 

4.2.無限に動作を続ける

ここまでの設定では、TextBlockはぐるっと一回転移動すると動作を停止してしまいます。
ここではこの動作を無限に反復するように修せします。
まず、ストーリーボードのストーリー名称(ここでは OnLoaded1)を選択してください。すると画面右側の「プロパティ」表示外貨のようになります。


RepeatBehaviorの設定を「1×」を「Forever」へ変更します。


では確認します。「F5」を押下して動作を確認してください。これで無限に反復するようになったはずです。

 

4.3.TextBlock の移動を「ひし形」から「円形」へ変える

TextBlock が無事に無限動作するようになりましたが、ひし形の移動は角があって美しくありません。円形に滑らかに移動するようにしたいと思います。
まず最初に「textBlock」の左側にある▶を押して、textBlockを展開してください。下図のように x、y が展開されます。


この後、この X,Y に対してそれぞれ設定を加えていきます。
まず1秒の部分の設定を行います。1秒のところの X の◯をマウスクリックしてください。画面右側のプロパティが下図のようになります。


「EasingFunction」をクリックすると様々な関数が表示されますが、ここでは下図の通り「Sine In」を選択します。


同様に反復して下の表に従って設定を行います。

Time (s) Element name Easing Function name
0 x
y
なし
なし
1 x
y
Sine In
Sine Out
2 x
y
Sine Out
Sine In
3 x
y
Sine In
Sine Out
4 x
y
Sine Out
Sine In

以上で完成です。「F5」を押して動作確認しましょう。

 

5.おしまい

Easing Function には他にも様々なものがあります。また今回は TextBlock のロケーションのみを変えましたが、拡大/縮小、回転、など様々なプロパティを動的に変更できます。いろいろと試してみてください。

 

サンプルプログラム ダウンロード : 開発環境 「Expression Blend 4」


記載: 2012年12月2日 木下英俊