WPFの姿勢

imageBlend de GO GO!

Blend で WPFプロジェクトを作成。

Storyboard でアニメーションを作って(Storyboard1)保存する。これを動的に処理するために、C#側でアニメーションの管理をすることにする。

ひとまずテストだからボタンを作ってClikイベントをダブルクリック、Visual Studio が自動的に立ち上がりプロジェクトを読んで、Button Click のメソッドが出来上がっている。Expression + Blend も進化したなぁ、と感慨に浸りつつ。コーディング。

Storyboard ってあれ?Intellisense が出てこない。

image

手動で実装?

あら、Animation の名前空間のインポートもないのかい?Silverlight ですぐにそのまま使えるのに、ということでこういった機能へのWPFとSilverlightの姿勢が見えてきます。

ひとまず、強引に Storyboard を打って名前空間のインポート宣言を追加。using System.Windows.Media.Animation; が、それでも Storyboard1 インスタンスは使えない。リソースという大奥。に登録され探しに行かないといけない。もちろんもらったらキャスト。

Storyboard str = (Storyboard)FindResource("Storyboard1);

imageここまで来てようやくアニメーションが動かせるようになる。

str.begin();

まぁ、この辺はトリガを使ってXAMLだけでも実装はできる。ここから動的な処理を入れてこそコード側で実装する意義があるのだ。

違うのだ

Srotyboard は主にUXの要素であってUX側で実装するのが自然。という考えがWPFにはあると思う。良い悪いではなくテンプレート一つからWPF開発陣のポリシーみたいなものが見え隠れする野を感じます。

* 尚、画面キャプチャと本文は特に関係はありません。