博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

      Silverligth文件比较大时,考虑到下载速度和时间的问题,可能需要对程序进行分割,分割成各个子项目组件,并在运行时动态下载需要的组件,下载后在主载体页面中进行组件切换,这样就能节约第一次下载的文件大小,并延长了下载时间,可以大大的提高用户体验。

      这样做的好处很多,俺不再啰嗦,上菜了。。。。。以下是前天帮朋友实现的一个Demo。

      1.首先来看看事例的组成:

MainContent是主载体,MainContent.Web是。。。这个不用说了吧

SLBookDemoApp 和 SLBookDemoApp1 是两个测试的子项目

SLInterfaces 是接口类项目

 

      2.接口代码,主项目的MainPage和子项目的Switcher都继承该接口

Code

 

      3.实现切换,在UserControl中改变Content值

public void SwitchView(UserControl view)
{
     
this.Content = view;
}

 

      4.动态下载部分,这里参考了这位大哥的文章,主要的思路就是使用WebClient动态下载xap文件,并在客户端反射载入指定的UserControl

Code

 

这样就差不多,小小工宣布告成,事例文件下载