WP7向けプログラミングTipsを地道に書いていこうと思います。
前回も書きましたが、美声時計的何かを作ってます。画像が出て、声が出て、時間になったら切り替わるわけです。練習課題としてはうってつけですね。
では、まずは今の時間に対応する画像を表示してみましょう。
private void RefreshTimeImage() { //現在時刻取得 string uriTime = DateTime.Now.ToString("HHmm"); //イメージ変更 string uriPhoto = "photos/" + uriTime + ".jpg"; mainPhoto.Source = new System.Windows.Media.Imaging.BitmapImage((new Uri(uriPhoto, UriKind.Relative))); RefreshSound(); }
こんな感じですね。自分の場合は内部リソースへのアクセスの仕方で詰まりました。その程度のことも調べるのもキツいのが現状です。
愚痴はおいておいて、基本的には最初に / 無しの相対パスで、かつUriKind.Relativeにすれば通ります。はい、 / 付けて詰みました。厳密には/プロジェクト名;component/フォルダ名/リソースが正しいっぽいです。
今回は時計でして、その時間の(iPhoneアプリの元ファイルを解体したら)画像名は標準書式指定でHHmm.jpgになってますので、それでURI生成。あとは画像をImageオブジェクトへ流し込むだけ。その際、hoge.SourceでURIを指定してやる辺りがSilverlightっぽいですね。
最後のRefreshSoundで美人時計が美声時計に変わるわけですが、そっちは次の機会で。