2011年10月25日火曜日

Windows Phoneのテーマに関連したリソースを取得する。

Windows Phoneのテーマに関連した情報を引き出すにはどうしたら良いのか分からなかったので、Microsoft MVP for Deveice Application Development のCH3COOH(酢酸)センセイに訊いてみました。

酢酸センセイがこのように取得できますよと教えてくれたのが、次のブログエントリにあるようなコード。
http://ch3cooh.jp/index.php/tips/windowsphone7/system/resources/

要はResources[“要素名”]をキャストして代入ってことみたいなので、他の要素はどうなってるかなと思って調べたら、次のMSDNライブラリを見つけました。

Theme Resources for Windows Phone
http://msdn.microsoft.com/en-us/library/ff769552(v=VS.92).aspx

Windows Phoneアプリで苦労するのは、テーマが変更されたときにアプリが違和感なく表示されるかどうかです。画像とかも意外にテーマを変更したら画像が見えなくなったとかあります。テーマのチェックする際には、Resource[“要素名”]を忘れずに。

2011年10月11日火曜日

ページ遷移時のメソッドを整理する。

Windows Phoneのアプリの動作遷移に関しては、以前エントリで紹介しました。

アプリ起動と終了のイベントに関して整理してみる。

今回は、Windows PhoneアプリのActivatedイベントとDeactivatedイベントの間で発生するメソッドを整理したいと思います。overrideしておくと、ページ遷移の時に必ずコールされるようになるメソッドがあります。それが以下の3つのメソッドです。

  1. OnNavigatedFromメソッド
    このメソッドは、起動しているアプリケーションからDeactivatedイベントが発行される間に行われます。
  2. OnNavigatingFromメソッド
    このメソッドは、OnNavigatedFromメソッドよりも前に行われるメソッドです。
  3. OnNavigatedToメソッド
    このメソッドはOnNavigatedFromとは逆で、他のアプリケーションから自分のアプリケーションが戻るときのActivatedイベントが発行される間に行われます。

これらのメソッドの使い所としては、主にテンポラリ等のデータの保存処理と保存したデータの読み出し処理が多くなるかと思います。Windows Phoneアプリは、基本的に意図的に保存処理を記述しない限りデータや設定は保存されない仕組みです。そのため、Windowsボタンでホームに戻ったり、別のアプリケーションに遷移した場合は、アプリケーションがアクティブになったときに設定が保存されていないと、初期状態に戻ったりします。
それを防ぐために上記メソッド内で保存が必要な設定等の保存/読み出し処理を記述しておく必要があります。

イメージの制御で意外にこれで躓いたりしましたので、参考になればと思います。