微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight如何设置应用程序独立于浏览器运行

 

本文介绍如何使用VS2010 BETA2来开发可独立于浏览器的Silverlight应用程序,让让Silverlight应用程序独立运行,附加:  保存与执行下载的Silverlight应用程序文件

1 让Silverlight应用程序独立运行

使用Visual Studio 2010,可以很方便地将一个现有的Silverlight应用程序转换为独立运行。

         具体操作很简单,在Visual Studio 2010中打开Silverlight项目的属性页,在其Silverlight选项卡中选中“Enable running application out of the browser”选项,如下图所示:

  

 

点击右部的“Out-of-browser Settings…”,可以设置更多的选项:

 

 

 

         可以看到,在这个对话窗口中可以设置图标,窗体大小等一些参数。最有趣的是左下角的两个参数:

l  Use GPU acceleration:使用本机显卡的硬件加速,当Silverlight应用程序使用了大量的动画时,选中此项可以提升运行速度。之所以可以做到这点,是由于Silverlight应用程序是在客户端直接执行的,Silverlight运行时可以直接调用本地硬件所提供的计算能力。

l  Show install menu:当选中此项时,在浏览器中右击,会在右键菜单中多一项命令:

 

    将 XXX 安装到此计算机…

 

执行此命令,将出现一个向导:

 

          单击确定即可安装。

 多懂一点:

       保存与执行下载的Silverlight应用程序文件

      

    认情况下,下载的Silverlight程序文件放置于当前登录用户的个人数据文件夹下,请在安装Windows的驱动器上查找以下文件夹,就可以发现下载的Silverlight程序文件放在此文件夹的子文件夹(比如“40171400.localhost”)里。

 

\Users\登录用户名\AppData\LocalLow\Microsoft\Silverlight\OutOfbrowser\ 40171400.localhost

 

       上面的数字是由Silverlight安装程序随机生成的,用于区分本机所安装的Silverlight应用程序。

       Silverlight应用程序的执行是由一个名为sllauncher.exe的程序负责的,它将接收一个保存了Silverlight应用程序文件文件夹名。

 

\Program Files\Microsoft Silverlight\sllauncher.exe 40171400.localhost

 

 

有趣的是,安装到本地的Silverlight应用程序不会出现的控制面板“添加删除程序”的列表中,如果要删除程序,需要先运行它,然后右击,从弹出菜单中选择“删除此应用程序”命令。

         要删除Silverlight应用程序,需要完成两个步骤:

(1)       删除保存于用户文件夹中的程序文件

(2)       删除快捷方式。

2 编程控制Silverlight应用程序的安装过程
我们可以在Silverlight应用程序中使用代码来直接启动安装过程,这需要调用Application对象的Install()方法

 

App.Current.Install();

 

上面代码中的App.Current引用当前的Silverlight Application对象实例。

 

注意:

       如果没有给Silverlight项目设定“Enable running application out of the browser”选项,直接调用Install()方法强制安装Silverlight应用程序到本地,则Silverlight插件将会引发一个ManagedRuntimeError,应用程序将会被强制结束。

另外,如果本Silverlight应用程序已经安装到本地了,再次调用Install()方法会引发一个InvalidOperationException异常。

 

应用程序可以通过检测一下Aplication对象的InstallState属性来避免二次安装。

 

            if (App.Current.InstallState == InstallState.notinstalled)

                App.Current.Install();

            else

                tbInfo.Text = "本应用程序已经安装,谢谢使用!";

 

       另外,Aplication对象提供了一个InstallStateChanged事件用于跟踪安装状态的改变,可以编写代码响应此事件,通知用户安装完成:

 

//在页面构造函数中挂接InstallStateChanged事件

App.Current.InstallStateChanged +=

new EventHandler(Current_InstallStateChanged);

 

         以下是事件响应代码

        

void Current_InstallStateChanged(object sender,EventArgs e)

{

            if (App.Current.InstallState == InstallState.Installed)

                tbInfo.Text = "安装完成,您可以直接在桌面或开始菜单中运行此应用程序";

}

 

       另外,Aplication对象还有一个IsRunningOutOfbrowser属性用于检测Silverlight应用程序是否运行于浏览器环境内。

       示例程序项目OutOfbrowserSilverlightApplication综合了上述编程技巧,展示了一个Silverlight应用程序的安装与卸载的基本方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐