Silverlight asp: метка silverlight - PullRequest
       27

Silverlight asp: метка silverlight

0 голосов
/ 28 октября 2010

Я новичок в Silverlight.Извините, если это простой вопрос.

Я пытаюсь создать образец приложения с использованием Silverlight 4 в VS2010.Код, сгенерированный defualt на странице aspx (кроме сценария):

<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 показывает пустойscreen.

Также еще вопросы, если у нас есть 2 или более файлов xaml, как их называть ??(Поскольку мы ссылаемся на один xap-файл, где следует указать, какой xaml-файл должен указывать программа)

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 28 октября 2010

Я думаю, что тег asp: Silverlight запрещен, я бы пошел с сгенерированным. для других файлов xaml вы должны как-то включить их в свой MainPage.xaml, либо перейдя к ним, либо отобразив их.

0 голосов
/ 28 октября 2010

Придерживайтесь тега <object>, чтобы определить свое приложение Silverlight, поскольку @Alex упоминает, что старый серверный элемент управления Silverlight устарел - все, что он делает, это отображает для вас тег object и может не объявлять все необходимые параметры , При его использовании сделайте правый клик-> просмотреть источник на отображаемой странице и посмотрите, в чем разница между ним и использованием тега object вручную.

Для отображения конкретной xaml-страницы внутри приложения SL я предполагаю, что выбор отображаемой страницы продиктован действиями, происходящими вне приложения. В этом случае есть несколько вариантов. Вы можете использовать javascript для вызова функции управляемого кода в приложении SL, и эта функция может показать соответствующую страницу. Вы можете вызвать приложение SL обратно на содержащую страницу - вы можете вызвать функцию javascript или получить доступ к элементу HTML на странице. В качестве альтернативы вы можете передать информацию как часть приложения SL InitParams:

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

в коде страницы aspx:

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

эти InitParams доступны как ваш StartupEventArgs в Application_Startup приложения SL:

    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();
    }
...