如果我每个页面都有两个aspx页面,我想放置不同的silverlight内容(2个不同的usercontol),我该怎么办?..我必须在asp.net网站上添加2个silverlight项目,并在每个页面中插入一个* .xap内容..?

谢谢。

最佳答案

不,您可以根据需要将两个UserControl放在一个XAP中。

您将使用initParams选择加载应用程序时显示的内容。

这是我过去使用的示例方法:

private void Application_Startup(object sender, StartupEventArgs e)
{
  string pageName = "UserControl1";

  if (e.InitParams.ContainsKey("startPage"))
  {
     pageName = e.InitParams["startPage"];
  }

  Type pageType = Assembly.GetExecutingAssembly().GetType("SilverlightApplication1." + pageName);
  RootVisual = (UIElement)Activator.CreateInstance(pageType);

}


您的对象标签参数列表如下所示:-

<param name="source" value="ClientBin/SilverlightApplication1.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="3.0.40624.0" />
<param name="autoUpgrade" value="true" />
<param name="initParams" value="startPage=UserControl2" />


当您要添加新的Silverlight用户控件时,只需将其添加到现有的SL项目中,然后可以通过复制任何现有的对象标签标记并调整startPage来使用它。

提防加载XAP过多,否则要进行细微更改,否则可能会增加用户的下载成本,因为对于每个用户而言,单独的XAP可能不会产生这种成本。

10-01 11:01