1

スタックに関するこちらの記事と Silverlight MSDN に関する記事を見たことがありますが、Silverlight5 には対応していません。私の html ホスト ドキュメントの div コードと、それを呼び出す C# コードについては、以下を参照してください。「指定されたキーが辞書に存在しませんでした」というメッセージが表示されます。毎回エラーが発生し、.InitParamsプロパティカウントも毎回0です。誰かがこれに対する解決策を知っていますか? これは Silverlight5 のバグか何かのように感じます。また、誰かがホスト html オブジェクト タグから情報を取得するためのきれいな別の方法を持っている場合、私もそれを楽しみます。

マークアップ:

<div id="silverlightControlHost">
        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="400" height="300">
          <param name="source" value="ClientBin/MySilverlightApplication.xap"/>
          <param name="onError" value="onSilverlightError" />
          <param name="background" value="white" />
          <param name="minRuntimeVersion" value="5.0.61118.0" />
          <param name="autoUpgrade" value="true" />
          <param name="initParams" value="rootLocation=someLocation" />
          <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=5.0.61118.0" style="text-decoration:none">
              <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
          </a>
        </object>
        <iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe>
   </div>

静的プロパティからの C# の取得:

private const String rootLocation= "rootLocation";

internal String RootLocation { 

    get
    {

        String location = App.Current.Host.InitParams[rootLocation];

        return location;

    }
}

AppStartUpイベントからの C# の取得:

private const String rootLocation= "rootLocation";

private void Application_Startup(object sender, StartupEventArgs e)
{
    this.RootVisual = new MainPage();

    String location = e.InitParams[rootLocation];

}
4

1 に答える 1

3

ソリューションをSilverlight5にアップグレードした後も、同じ問題が発生しました。app.xamlが呼び出されていても、WEBプロジェクトの「スタートアッププロジェクト」ステータスが失われていることが判明しました。これをリセットすると、すべてが再び機能するようになりました。

于 2012-09-13T01:19:17.690 に答える