0

私はSilverlightを初めて使用します。これが簡単な質問ならすみません。

VS2010でSilverlight4を使用してサンプルアプリケーションを作成しようとしています。aspxページでdefualtによって生成されるコードは、(スクリプトは別として)次のとおりです。

<div id="silverlightControlHost">
    <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
      <param name="source" value="ClientBin/test.xap"/>
      <param name="onError" value="onSilverlightError" />
      <param name="background" value="white" />
      <param name="minRuntimeVersion" value="3.0.40624.0" />
      <param name="autoUpgrade" value="true" />
      <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none">
          <img src="http://go.microsoft.com/fwlink/?LinkId=108181" 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>

asp:silverlightタグを使用したかったので、dll System.Web.Silverlight.dll(v2.0)を追加しました。

タグを取得し、上記のコードを次のように置き換えました。

<asp:ScriptManager ID="ScriptManager1" runat="server" ></asp:ScriptManager>
<asp1:Silverlight ID="test" runat = "server" Source="~/ClientBin/test.xap">
</asp1:Silverlight>   

これで、上記のコード(自己生成コード)は機能しますが、asp:silverlight空白の画面が表示されます。

また、別の質問、2つ以上のxamlファイルがある場合、それらを呼び出す方法は?? (jsutは1つのxapファイルを参照しているので、プログラムが参照する必要があるxamlファイルについて言及します)

前もって感謝します。

4

2 に答える 2

1

asp:Silverlightタグは削除されていると思いますが、生成されたタグを使用します。他のxamlファイルについては、それらに移動するか表示することにより、何らかの方法でMainPage.xamlにそれらを含める必要があります。

于 2010-10-27T22:27:37.153 に答える
0

<object>@Alexは、古いSilverlightサーバーコントロールが非推奨であると述べているため、タグを使用してSilverlightアプリケーションを定義します。タグをレンダリングするobjectだけで、必要なすべてのパラメーターを宣言できない場合があります。object使用する場合は、右クリック->レンダリングされたページのソースを表示し、タグを手動で使用した場合との違いを確認してください。

SLアプリケーション内で特定のxamlページを表示するために、表示するページの選択は、アプリの外部で発生するアクションによって決定されると想定します。この場合、いくつかのオプションがあります。javascriptを使用してSLアプリでマネージコード関数を呼び出すことができ、その関数は適切なページを表示できます。SLアプリから呼び出して、含まれているページに戻ることができます。javascript関数を呼び出すか、ページ上のHTML要素にアクセスできます。または、SLアプリの一部として情報を渡すこともできますInitParams

<param name="InitParams" value="<% =GetMyInitParams() %>" />

aspxページのコードビハインド:

protected string GetMyInitParams()
{
    return "MyStartPage=Page1,SomeOtherParam=blah";
}

これらのInitParamsは、SLアプリのStartupEventArgsinとして利用できます。Application_Startup

    private void Application_Startup(object sender, StartupEventArgs e)
    {
        if (e.InitParams != null && e.InitParams.Count > 0)
        {
            foreach (string key in e.InitParams.Keys)
            {
                switch (key)
                {
                    case "MyStartPage":
                        myPageToShow = e.InitParams["MyStartPage"];
                        break;
                }
            }
        }
        this.RootVisual = new MainPage();
    }
于 2010-10-27T22:45:47.250 に答える