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="安装应用到本地" Width="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 x:Name="lbNetworkStatus" Foreground="LightGreen" HorizontalAlignment="Center" FontSize="18"/>
14         </StackPanel>
15     </Grid>
16  </UserControl>
17  
 1 private void CheckNetworkStatus()
 2         {
 3             if (NetworkInterface.GetIsNetworkAvailable())
 4             {
 5                 lbNetworkStatus.Foreground = new SolidColorBrush(Color.FromArgb(255,90,240,90));
 6                 lbNetworkStatus.Text = "当前网络处于连接状态";
 7             }
 8             else
 9             {
10                 lbNetworkStatus.Foreground = new SolidColorBrush(Colors.Red);
11                 lbNetworkStatus.Text = "当前网络处于断线状态";
12             }
13         }
14 
15         private void NetworkChange_NetworkAddressChanged(object sender, EventArgs e)
16         {
17             CheckNetworkStatus();
18         }

修改构造函数代码:

 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             CheckNetworkStatus();
28 
29             Application.Current.InstallStateChanged += Current_InstallStateChanged;
30             NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged);
31 
32         }

  运行后可以在离线状态下,查看网络应用状态:

  本文主要讲述Silverlight的Out of Browser应用设置,安装和卸载,属于Silverlight实例开发前的基础,下一篇我将继续介绍Silverlight的Out of Browser应用开发基础。

转载于:https://www.cnblogs.com/jiewei915/archive/2013/01/10/2854967.html

Silverlight - Out of Browser配置,安装和卸载相关推荐

  1. File Browser配置安装

    File Browser配置安装 简介 File Browser 是一个基于 Web 的文件管理器.它可以使你随时随地的对设备的文件进行基本的管理操作,如:创建.删除.移动.复制等.它除了可以让你进行 ...

  2. Linux 的软件管理及配置 - 安装、卸载、升级、依赖

    1. 对比:Windows 和 Linux 上软件的安装与卸载 大部分 Linux 使用者都是从 Windows 转过来的,先对这俩做个对比,有助理解. 就像在 Windows 下,很多软件也有安装版 ...

  3. winget 配置安装路径/卸载等指南

    介绍 winget-cli是2020年微软推出的windows平台下的包管理器,目前在GitHub上持续更新,用过Linux的应该知道诸如apt等包管理器,在windows还有scoop这种更早出现的 ...

  4. memcached的基本命令(安装、卸载、启动、配置相关)

    memcached的基本命令(安装.卸载.启动.配置相关): -p 监听的端口  -l 连接的IP地址, 默认是本机   -d start 启动memcached服务  -d restart 重起me ...

  5. 大数据WEB阶段(六)MySql 下载、安装、卸载与配置

    MySql下载.安装.卸载与配置 一.下载.安装.卸载与配置 下载地址: 点击下载 安装 注意事项:安装路径不能有中文和空格 打开安装程序 配置环境变量Path 找到mysql的安装目录下的bin目录 ...

  6. Nginx安装、卸载、基础命令、配置

    Nginx安装.卸载.基础命令 安装 gcc安装失败 卸载 检查nginx服务启动情况 如果服务加入了自启动,则删除服务 删除nginx文件 如果使用yum安装的则使用命令删除依赖 基础命令 重启失败 ...

  7. 数据库的概念以及MYSQL的安装和卸载

    一.数据库的基本概念: 1.什么是数据库? DataBase,简称DB.是用来存储和管理数据的仓库. 2.数据库的特点: 持久化存储数据的.其实数据库就是一个文件系统. 方便存储和管理数据 使用了统一 ...

  8. mysql.msi卸载_MySql安装与卸载的详细教程

    本文为大家分享了MySql安装与卸载的教程,供大家参考,具体内容如下 一.MYSQL的安装 1.打开下载的mysql安装文件,双击运行mysql-5.5.40-win32.msi. 2.选择安装类型, ...

  9. mysql 安装卸载_MySQL(一)——安装、卸载以及基本操作

    安装 如果在安装的过程中缺少依赖:https://www.microsoft.com/zh-cn/download/details.aspx?id=40784 数据库已经安装完成,路径 C:\Prog ...

最新文章

  1. error while loading shared libraries: libmysql....
  2. CSS的overflow:规定当内容溢出元素框时发生的事情
  3. idea进行断点快捷键
  4. SAP链接外部数据库的实现方法
  5. Android doc |Getting Started|部分 部分译文 --Building Your First App
  6. 移动端报表JS开发示例--获取定位
  7. linux快速查找文件中所包含的指定字段的个数
  8. 谈谈自己对投影、SVD和傅里叶变换的理解
  9. RQNOJ 342 最不听话的机器人:网格dp
  10. 又是整数划分(poj1032)
  11. 解决家庭版win10、win8没有远程桌面选项
  12. word宏、宏编程以及VBA
  13. maxscale mysql 主从_MariaDB主从配置与MaxScale实现MySQL读写分离
  14. 优雅发送HTTP请求
  15. Justinmind破解
  16. python基础(中)
  17. PDF Reader XI 闪退+安装组件错误代码提示1935最完美最靠谱的解决方案
  18. 计算机word考试试题学做,全国计算机等级考试Word试题及答案
  19. 财政收入影响因素分析及预测
  20. 1367 二叉树中的列表(递归)

热门文章

  1. 老板:kill -9的原理都不知道就敢到线上执行,明天不用来了!
  2. 没有读过的书,就不要瞎推荐了!
  3. Spring Boot实现热部署
  4. Hystrix文档-实现原理
  5. 框架:springboot组合spring、springmvc、mybatis的一个小demo
  6. 16.C++中的this指针
  7. “adb”不是内部或外部命令,也不是可运行的程序或批处理文件(Win)与(Mac)——终极解决方案
  8. Spring Boot切换其他嵌入式的Servlet容器
  9. rocm平台_痛击NV CUDA!AMD ROCm开放计算平台瓜熟蒂落
  10. 平安数据中心高可用运维白皮书