使用Prism的SL4 OOB应用程序的自定义启动/启动页面

时间:2011-09-20 02:36:30

标签: silverlight-4.0 unity-container prism out-of-browser bootstrapper

我可以使用一些帮助来找出为使用Prism 2构建并在浏览器外运行的Silverlight 4客户端应用程序实现“启动”/启动页面的最佳方法。

我支持一套应用程序,并且正在开发一个所有应用程序可能使用的公共控件和服务库。作为其中的一部分,我正在创建UnityBootstrapper类的子类来注册服务。

我遇到过这种情况,我需要在启动时使用来自服务器的数据“预加载”一些服务。这可能需要一些时间,因此我们希望在执行所有启动步骤时显示启动画面。由于我们在浏览器外运行,我知道这不是直截了当的。任何帮助表示赞赏。

我也对其他无法“延迟加载”启动数据的方法持开放态度。

2 个答案:

答案 0 :(得分:0)

检查prism的示例项目(在PRISM安装下):

  

棱镜\快速入门\模块化

这将向您展示如何知道何时加载/完成模块

您可以在Shell上使用带有样式的Busy指示符来表示您正在加载。

答案 1 :(得分:0)

因此经过多次试验和错误后,我想出了以下方法,我现在正在努力研究它的运作情况。

我在我的类库中创建了一个Shell UserControl,它充当UI的包装器(容器)。我将此控件设置为RootVisual。在此控件的内容中,我添加了我的启动控件/视图并进行所有必要的启动服务调用。使用WaitHandles,我等到所有调用都返回后再用应用程序的起始页替换splash控件。

应用程序不知道这是如何工作的,这是我的目标。它们只是覆盖我添加到引导程序的方法来进行任何启动服务调用。服务调用在后台线程上执行,代码使用WaitHandle.WaitAll来阻塞,直到完成所有调用,然后使用Dispatcher.BeginInvoke将splash替换为应用程序的主页面。

这一切看起来都很顺利。