/ Silverlight

Silverlightアプリ起動時にくるくる回ってロード状況をお知らせしてくれる、あの画面をスプラッシュスクリーンと呼ぶらしいのですが、その作り方。
オフィシャルな説明はこちらに載っていますが、実際に真似してやろうとして少しハマったので、覚え書きってことで。

以下、やらなければいけないことを順を追って説明していきます。
全てコンテナ用のWebプロジェクトに対する作業となりますので、Silverlightプロジェクト側に手を入れる必要はありません。

1. スプラッシュスクリーンの作成

  • コンテナ用のWebプロジェクトに新しい項目として「Silverlight 1.0 JScript ページ」を追加します。これにより、「xxxxx.xaml」と「xxxxx.js」の2ファイルがプロジェクトに追加されます。(xxxxxはお好きな名前でどうぞ)
  • 「xxxxx.xaml」を以下の要領で編集します。(既定のコードは全削除)

  • 「xxxxx.js」を以下の要領で編集します。(既定のコードは全削除)

  • ここまでやってビルドするとエラーが出ますので、不足している参照設定をWebプロジェクトに追加します。前述のXAMLの内容によりますが、基本的には「PresentationCore」、「PresentationFramework」、「WindowsBase」の3点を追加すればいけると思います。

2. コンテナHTMLの編集

  • 上記で作成したスプラッシュスクリーンが表示されるようにするために、コンテナとなるHTMLファイルに以下の記述を追加します。

xxxxx.js 内のCanvasレイアウトのくだりは海外サイトからのパクリですw
静的サイズのアプリならば不要なのですが、Silverlightでサイズ固定のアプリというのは如何なものかと思いますので、動的なポジション/サイズ調整は必須と思うのですが、いかんせんコードビハインドの代わりにjavascriptで記述しなければいけないので、まどろっこしいことになっています。

あとは、あくまでSilverlight 1.0ベースということなので、普通にBlendで書いたXAMLを貼るとエラーが多発する可能性があります。
画像利用も極力避けるようにオフィシャル説明では書かれていますので、スプラッシュスクリーンで出来ることはわりと限られてくる印象です。(あまり凝るところではないかも、ですが)

それと、小さいXAPファイルの場合は、スプラッシュ表示が一瞬で終わってしまう(あるいは表示されない)ので、開発時は一時的に大きめの動画ファイルなどをSilverlightプロジェクトに混ぜておくと、じっくり確認できて具合がよろしいようです。

まぁ、そんなわけで、デフォルトの起動画面に見飽きた方はトライしてみてください。
ちなみに、全くもって存在感のない「ロムった~」にも一応装備してみましたが、一瞬で消えちゃいますw



コメントを残す

メールアドレスが公開されることはありません。