Silverlight实例教程 - Out of Browser配置,安装和卸载

  Silverlight 实例教程索引

Silverlight 实例教程 - Out of Browser开篇 Silverlight 实例教程 - Out of Browser配置,安装和卸载 Silverlight 实例教程 - Out of Browser的自定义应用 Silverlight 实例教程 - Out of Browser存取本地文件系统 Silverlight 实例教程 - Out of Browser与COM的交互基础 Silverlight 实例教程 - Out of Browser与Office的互操作 Silverlight 实例教程 - Out of Browser的Debug和Notifications窗口 Silverlight 实例教程 - Out of Browser音乐播放器 Silverlight 实例教程 - Out of Browser与COM互操作实例 Silverlight 实例教程 - Out of Browser在线更新和Silent安装

  本篇将介绍Silverlight的Out of Browser在实例开发前的基础设置以及一些开发技巧。

  在创建Silverlight项目时,默认是不支持Out of Browser模式的,所以在使用Silverilght的Out of Browser前,需要对Silverlight项目进行设置,使其支持OOB项目安装和运行。在以下演示中,将创建一个演示例程,该例程将在后续教程中使用,由于该教程不属于Silverilght基础开发教程,所以这里,我不在细述如何创建Silverlight项目,

  项目名称: SilverilghtOOBDemo

  项目环境:VS2010 + Silverlight 4

  Silverlight的Out of Browser应用设置

  在Silverlight项目中,设置项目支持Out of Browser模式非常简单,首先右键选中SilverlightOOBDemo客户端项目,选择“Properties”属性

  在项目属性栏,默认情况下已经选择了Silverlight标签,而在右边内容页面中,"Enable running application out of the browser"是没有被选中的,我们仅需要选中该选项,保存,即可设置当前Silverlight项目支持Out of Browser。

  在"Enable running application out of the browser"选项下,可以看到一个Out-of-Browser Settings...按钮,点击进行该按钮,即可对Out-of-Browser进行设置:

  从上图可以看出,开发人员可以通过这些属性,创建个性的Out of Browser应用。以上设置属性是保存在Visual Studio 2010中的OutOfBrowserSettings.xml文件中的,开发人员也可以通过修改该文件来设置OOB应用属性。

1 <OutOfBrowserSettings ShortName="SilverlightOOBDemo Application" EnableGPUAcceleration="False" ShowInstallMenuItem="True">

2   <OutOfBrowserSettings.Blurb>SilverlightOOBDemo Application on your desktop; at home, at work or on the go.</OutOfBrowserSettings.Blurb>

3   <OutOfBrowserSettings.WindowSettings>

4     <WindowSettings Title="SilverlightOOBDemo Application" />

5   </OutOfBrowserSettings.WindowSettings>

6   <OutOfBrowserSettings.Icons />

7  </OutOfBrowserSettings>

  在完成以上设置后,点击确定和保存,该项目即可支持Out of Browser模式。

  Silverlight的Out of Browser应用安装

  Silverlight Out of Browser应用的安装很简单,作为开发人员我们可以通过两种方式提供给用户安装OOB应用到本地。

  第一种方式是使用默认的右键菜单按钮安装应用到本地。

  这种方式是Out of Browser默认的安装方式,但是该方式的弊端是不易与用户体验,每次用户要右键点击应用才能安装应用。作为专业Out of Browser应用,通常会使用第二种方式安装OOB应用到本地。

  第二种方式,添加控件通过Application.Current.Install()事件安装应用到本地。

  在当前应用的MainPage下,添加安装按钮,通过按钮点击事件安装应用到本地。

1 <Grid x:Name="LayoutRoot" Background="DimGray">

2         <Button x:Name="btInstall" Content="安装应用到本地" W
idth="200" Height="50" Click="btInstall_Click"/>

3  </Grid>
 1 private void btInstall_Click(object sender, RoutedEventArgs e)

 2         {

 3             try 

 4             { 

 5                 Application.Current.Install(); 

 6             }

 7             catch (InvalidOperationException ex) 

 8             { 

 9                 MessageBox.Show("应用已经安装."); 

10             }

11             catch (Exception ex) 

12             { 

13                 MessageBox.Show("应用不能被安装,错误信息如下:" + Environment.NewLine + ex.Message); 

14             } 

15         }

  通过上面简单代码也可以达到安装OOB应用到本地的效果。

  对于较为专业的Out of Browser应用的安装,我们经常会添加一些代码对当前应用安装进行简单的判断,判断该应用是否已经被安装到了本地,如果已经安装,将忽略不再进行安装步骤。这是对OOB应用的一种保护措施。我们简单修改项目代码。

1 public MainPage()

 2         {

 3             InitializeComponent();

 4 

 5             if (Application.Current.IsRunningOutOfBrowser)

 6             {

 7                 btInstall.Visibility = Visibility.Collapsed;

 8                 lbStatus.Text = "我正在Out of Browser下运行";

 9             }

10             else

11             {

12                 btInstall.Visibility = Visibility.Visible;

13                 lbStatus.Text = "我正在浏览器中运行";

14             }

15 

16             if (Application.Current.InstallState != InstallState.Installed)

17             {

18                 btInstall.IsEnabled = true;

19 

20             }

21             else

22             {

23                 btInstall.IsEnabled = false;

24                 btInstall.Content = "应用已经安装到本地";

25             }

26 

27         }

  安装本地前:

  安装本地后:

  重复安装时:

  对于安装时所处于的状态控制,我们可以通过InstallState进行判断。我们可以通过添加以下代码:

1 private void Current_InstallStateChanged(object sender, System.EventArgs e)

 2         {

 3             switch (Application.Current.InstallState)

 4             {

 5                 case InstallState.Installing:

 6                     btInstall.IsEnabled = false;

 7                     btInstall.Content = "正在安装...";

 8                     break;

 9 

10                 case InstallState.Installed:

11                     btInstall.IsEnabled = false;

12                     btInstall.Content = "已经安装";

13                     MessageBox.Show("OOB应用已经安装到本地");

14                     break;

15 

16                 case InstallState.NotInstalled:

17                     btInstall.IsEnabled = true;

18                     btInstall.Content = "点击安装该应用到本地";

19                     break;

20 

21                 case InstallState.InstallFailed:

22                     MessageBox.Show("OOB应用安装失败");

23                     btInstall.IsEnabled = false;

24                     break;

25             }

26         }

  当安装时,用户可以看到提示:

  以上是Silverlight Out of Browser安装方法和一些控制技巧。

  Silverlight的Out of Browser应用卸载

  Silverlight的OOB应用卸载同样很简单,Silverlight没有和安装时候的Install API,所以我们无法通过代码的方式控制卸载,但是可以通过以下两种方式卸载应用:

  1. 右键点击应用,选择卸载应用选项;

  2. 通过Windows“控制面板",选择对应应用进行卸载,这个是传统型卸载方法,这里不再赘述。

  简单实例

  在这个简单实例中,我将在当前的OOB应用中添加一个简单的网络监测代码,演示该应用在线和离线时的网络状态。在该应用,我们仍旧会使用System.Windows.Application API来判断应用是否离线安装,而我们还会使用System.Net.NetworkInformation API来判断其网络状。简单修改代码如下:

1 <UserControl x:Class="SilverlightOOBDemo.MainPage"

 2     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

 3     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

 4     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

 5     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

 6     mc:Ignorable="d"

 7     d:DesignHeight="300" d:DesignWidth="400">

 8 

 9     <Grid x:Name="LayoutRoot" Background="DimGray">

10         <StackPanel Orientation="Vertical">

11             <Button x:Name="btInstall" Content="安装应用到本地" Width="200" Height="50" Click="btInstall_Click"/>

12             <TextBlock x:Name="lbStatus" Foreground="White" HorizontalAlignment="Center" FontSize="18"/>

13             <TextBlock

时间: 2024-09-03 05:52:27

Silverlight实例教程 - Out of Browser配置,安装和卸载的相关文章

一起谈.NET技术,Silverlight实例教程 - Out of Browser在线更新和Silent安装

Silverlight 实例教程索引 Silverlight 实例教程 - Out of Browser开篇 Silverlight 实例教程 - Out of Browser配置,安装和卸载 Silverlight 实例教程 - Out of Browser的自定义应用 Silverlight 实例教程 - Out of Browser存取本地文件系统 Silverlight 实例教程 - Out of Browser与COM的交互基础 Silverlight 实例教程 - Out of Br

Silverlight实例教程 - Out of Browser在线更新和Silent安装

Silverlight 实例教程索引 Silverlight 实例教程 - Out of Browser开篇 Silverlight 实例教程 - Out of Browser配置,安装和卸载 Silverlight 实例教程 - Out of Browser的自定义应用 Silverlight 实例教程 - Out of Browser存取本地文件系统 Silverlight 实例教程 - Out of Browser与COM的交互基础 Silverlight 实例教程 - Out of Br

Silverlight实例教程 - Out of Browser与COM互操作实例

Silverlight 实例教程索引 Silverlight 实例教程 - Out of Browser开篇 Silverlight 实例教程 - Out of Browser配置,安装和卸载 Silverlight 实例教程 - Out of Browser的自定义应用 Silverlight 实例教程 - Out of Browser存取本地文件系统 Silverlight 实例教程 - Out of Browser与COM的交互基础 Silverlight 实例教程 - Out of Br

Silverlight实例教程 - Out of Browser存取本地文件系统

Silverlight 实例教程索引 Silverlight 实例教程 - Out of Browser开篇 Silverlight 实例教程 - Out of Browser配置,安装和卸载 Silverlight 实例教程 - Out of Browser的自定义应用 Silverlight 实例教程 - Out of Browser存取本地文件系统 Silverlight 实例教程 - Out of Browser与COM的交互基础 Silverlight 实例教程 - Out of Br

Silverlight实例教程 - Out of Browser音乐播放器

Silverlight 实例教程索引 Silverlight 实例教程 - Out of Browser开篇 Silverlight 实例教程 - Out of Browser配置,安装和卸载 Silverlight 实例教程 - Out of Browser的自定义应用 Silverlight 实例教程 - Out of Browser存取本地文件系统 Silverlight 实例教程 - Out of Browser与COM的交互基础 Silverlight 实例教程 - Out of Br

Silverlight实例教程 - Out of Browser的自定义应用

Silverlight 实例教程索引 Silverlight 实例教程 - Out of Browser开篇 Silverlight 实例教程 - Out of Browser配置,安装和卸载 Silverlight 实例教程 - Out of Browser的自定义应用 Silverlight 实例教程 - Out of Browser存取本地文件系统 Silverlight 实例教程 - Out of Browser与COM的交互基础 Silverlight 实例教程 - Out of Br

一起谈.NET技术,Silverlight实例教程 - Out of Browser与Office的互操作

Silverlight 实例教程索引 Silverlight 实例教程 - Out of Browser开篇 Silverlight 实例教程 - Out of Browser配置,安装和卸载 Silverlight 实例教程 - Out of Browser的自定义应用 Silverlight 实例教程 - Out of Browser存取本地文件系统 Silverlight 实例教程 - Out of Browser与COM的交互基础 Silverlight 实例教程 - Out of Br

一起谈.NET技术,Silverlight实例教程 - Out of Browser与COM互操作实例

Silverlight 实例教程索引 Silverlight 实例教程 - Out of Browser开篇 Silverlight 实例教程 - Out of Browser配置,安装和卸载 Silverlight 实例教程 - Out of Browser的自定义应用 Silverlight 实例教程 - Out of Browser存取本地文件系统 Silverlight 实例教程 - Out of Browser与COM的交互基础 Silverlight 实例教程 - Out of Br

一起谈.NET技术,Silverlight实例教程 - Out of Browser的Debug和Notifications窗口

Silverlight 实例教程索引 Silverlight 实例教程 - Out of Browser开篇 Silverlight 实例教程 - Out of Browser配置,安装和卸载 Silverlight 实例教程 - Out of Browser的自定义应用 Silverlight 实例教程 - Out of Browser存取本地文件系统 Silverlight 实例教程 - Out of Browser与COM的交互基础 Silverlight 实例教程 - Out of Br