.NET TIPS

[Silverlight 2]アプリケーションで初期化パラメータを取得するには?[C#、VB]

デジタルアドバンテージ 岸本 真二郎
2009/02/05

 Silverlight 2アプリケーションはWebブラウザ上で実行されるが、その際.htmlファイルなどに初期化パラメータを記述しておき、それをSilverlight 2アプリケーションに渡すことができる。

 Silverlight 2アプリケーションをWebページに配置するには、.htmlファイルに<object>タグを使って記述する方法と、.aspxファイルに<asp:Silverlight>タグを使って記述する方法の2通りから選べるが、どちらの場合でも初期化パラメータの指定は可能だ。

.aspxファイルからSilverlight 2アプリケーションを起動する場合

 .aspxファイルを使用する場合、配置するSilverlightコントロール(<asp:Silverlight>要素)のInitParametersプロパティに初期化パラメータを設定する。Visual Studioを使用している場合には、[プロパティ]ウィンドウで設定可能である。


Silverlightコントロールのプロパティ

 初期化パラメータは、この画面にあるように、「<キー>=<値>」の形式で記述し、複数あればカンマで区切る。ここでは「Title」と「Subject」の2つを記述している。

HTMLファイルからSilverlight 2アプリケーションを起動する場合

 .htmlファイルで<object>要素を記述する場合は、<param>タグを使って「initparams」という値のname属性を記述することで、アプリケーションに引き渡すパラメータを記述できる。記述形式は先ほどのInitParametersプロパティと同じだ。以下にその記述例を示す。

<object data="data:application/x-silverlight-2,"
    type="application/x-silverlight-2" width="100%" height="100%">
  <param name="source"
      value="ClientBin/SilverlightApplication1.xap"/>
  <param name="onerror" value="onSilverlightError" />
  <param name="background" value="white" />
  <param name="minRuntimeVersion" value="2.0.31005.0" />
  <param name="autoUpgrade" value="true" />

  <!-- 初期化パラメータ -->
  <param name="initparams"
      value="Title=Hello Silverlight2,Subject=サンプル" />

  <a href="http://go.microsoft.com/fwlink/?LinkID=124807"
      style="text-decoration: none;">
    <img src="http://go.microsoft.com/fwlink/?LinkId=108181"
        alt="Get Microsoft Silverlight" style="border-style: none"/>
  </a>
</object>
初期化パラメータを追加したSilverlight 2アプリケーション用の<object>要素

初期化パラメータの取得

 .aspx/.htmlファイルにセットした初期化パラメータは、Silverlight 2アプリケーション側では、Applicationオブジェクト(App.xaml)が起動した際のStartupイベント・ハンドラ(通常はApplication_Startupメソッド)で取得できる。

 これはStartupイベント・ハンドラの第2パラメータとして渡されるStartupEventArgsオブジェクト(System.Windows名前空間)のInitParamsプロパティに格納されており、このプロパティはディクショナリ形式であるため、次のようにしてアクセスできる。

private void Application_Startup(object sender, StartupEventArgs e)
{
  // 初期化パラメータの取得
  string title = e.InitParams["Title"];
  string subject = e.InitParams["Subject"];

  // コンストラクタで引き渡し
  this.RootVisual = new Page(title, subject);
}
private Sub Application_Startup(ByVal o As Object, ByVal e As StartupEventArgs) Handles Me.Startup
  ' 初期化パラメータの取得
  Dim title As String = e.InitParams("Title")
  Dim subject As String = e.InitParams("Subject")

  ' コンストラクタで引き渡し
  Me.RootVisual = New Page(title, subject)
End Sub
App.xamlにおける初期化パラメータの取得(上:C#、下:VB)

 初期化パラメータとして設定した内容は、実際にはSilverlight 2アプリケーションの本体であるPageオブジェクトに渡すことになるだろう。ここでは初期化パラメータの値を引数に取るコンストラクタを用意して、Pageオブジェクトに渡している。End of Article

カテゴリ:Silverlight 2 処理対象:ブラウザ
使用ライブラリ:StartupEventArgsクラス(Silverlight 2/System.Windows名前空間)

この記事と関連性の高い別の.NET TIPS
[Silverlight 2]JavaScriptコードからSilverlightのオブジェクトを利用するには?
[Silverlight 2]HTML要素クリック時にSilverlightのメソッドを実行するには?
構文:コレクションのインスタンス化と同時に要素を追加するには?[C#/VB]
[Silverlight 2]Silverlightコントロールの実際のサイズを取得するには?
[Silverlight 2]マウス・オーバー時にSilverlightコントロールを大きく表示するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間