热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OOB配置,安装,卸载

在上篇“Silverlight实例教程-OutofBrowser开篇”中,介绍了Silverlight的OutofBrowser基础理论知识。本篇将介绍Silverl
在上篇“Silverlight实例教程 - Out of Browser开篇”中,介绍了Silverlight的Out of Browser基础理论知识。本篇将介绍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&#61;"SilverlightOOBDemo Application" EnableGPUAcceleration&#61;"False" ShowInstallMenuItem&#61;"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&#61;"SilverlightOOBDemo Application" />
5   OutOfBrowserSettings.WindowSettings>
6   <OutOfBrowserSettings.Icons />
7 OutOfBrowserSettings>
在完成以上设置后&#xff0c;点击确定和保存&#xff0c;该项目即可支持Out of Browser模式。
Silverlight的Out of Browser应用安装
Silverlight Out of Browser应用的安装很简单&#xff0c;作为开发人员我们可以通过两种方式提供给用户安装OOB应用到本地。
第一种方式是使用默认的右键菜单按钮安装应用到本地。
这种方式是Out of Browser默认的安装方式&#xff0c;但是该方式的弊端是不易与用户体验&#xff0c;每次用户要右键点击应用才能安装应用。作为专业Out of Browser应用&#xff0c;通常会使用第二种方式安装OOB应用到本地。
第二种方式&#xff0c;添加控件通过Application.Current.Install()事件安装应用到本地。
在当前应用的MainPage下&#xff0c;添加安装按钮&#xff0c;通过按钮点击事件安装应用到本地。
1 <Grid x:Name&#61;"LayoutRoot" Background&#61;"DimGray">
2         <Button x:Name&#61;"btInstall" Content&#61;"安装应用到本地" Width&#61;"200" Height&#61;"50" Click&#61;"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("应用不能被安装&#xff0c;错误信息如下:" &#43; Environment.NewLine &#43; ex.Message); 
14             } 
15         }
通过上面简单代码也可以达到安装OOB应用到本地的效果。
对于较为专业的Out of Browser应用的安装&#xff0c;我们经常会添加一些代码对当前应用安装进行简单的判断&#xff0c;判断该应用是否已经被安装到了本地&#xff0c;如果已经安装&#xff0c;将忽略不再进行安装步骤。这是对OOB应用的一种保护措施。我们简单修改项目代码&#xff0c;
 1 public MainPage()
 2         {
 3             InitializeComponent();
 4 
 5             if (Application.Current.IsRunningOutOfBrowser)
 6             {
 7                 btInstall.Visibility &#61; Visibility.Collapsed;
 8                 lbStatus.Text &#61; "我正在Out of Browser下运行";
 9             }
10             else
11             {
12                 btInstall.Visibility &#61; Visibility.Visible;
13                 lbStatus.Text &#61; "我正在浏览器中运行";
14             }
15 
16             if (Application.Current.InstallState !&#61; InstallState.Installed)
17             {
18                 btInstall.IsEnabled &#61; true;
19 
20             }
21             else
22             {
23                 btInstall.IsEnabled &#61; false;
24                 btInstall.Content &#61; "应用已经安装到本地";
25             }
26 
27         }
安装本地前&#xff1a;
安装本地后&#xff1a;
重复安装时&#xff1a;
对于安装时所处于的状态控制&#xff0c;我们可以通过InstallState进行判断。我们可以通过添加以下代码&#xff1a;
 1 private void Current_InstallStateChanged(object sender, System.EventArgs e)
 2         {
 3             switch (Application.Current.InstallState)
 4             {
 5                 case InstallState.Installing:
 6                     btInstall.IsEnabled &#61; false;
 7                     btInstall.Content &#61; "正在安装...";
 8                     break;
 9 
10                 case InstallState.Installed:
11                     btInstall.IsEnabled &#61; false;
12                     btInstall.Content &#61; "已经安装";
13                     MessageBox.Show("OOB应用已经安装到本地");
14                     break;
15 
16                 case InstallState.NotInstalled:
17                     btInstall.IsEnabled &#61; true;
18                     btInstall.Content &#61; "点击安装该应用到本地";
19                     break;
20 
21                 case InstallState.InstallFailed:
22                     MessageBox.Show("OOB应用安装失败");
23                     btInstall.IsEnabled &#61; false;
24                     break;
25             }
26         }
当安装时&#xff0c;用户可以看到提示&#xff1a;
以上是Silverlight Out of Browser安装方法和一些控制技巧。
Silverlight的Out of Browser应用卸载
Silverlight的OOB应用卸载同样很简单&#xff0c;Silverlight没有和安装时候的Install API&#xff0c;所以我们无法通过代码的方式控制卸载&#xff0c;但是可以通过以下两种方式卸载应用&#xff1a;
1. 右键点击应用&#xff0c;选择卸载应用选项&#xff1b;
2. 通过Windows“控制面板"&#xff0c;选择对应应用进行卸载&#xff0c;这个是传统型卸载方法&#xff0c;这里不再赘述.
简单实例
在这个简单实例中&#xff0c;我将在当前的OOB应用中添加一个简单的网络监测代码&#xff0c;演示该应用在线和离线时的网络状态。在该应用&#xff0c;我们仍旧会使用System.Windows.Application API来判断应用是否离线安装&#xff0c;而我们还会使用System.Net.NetworkInformation API来判断其网络状态。简单修改代码如下&#xff1a;
 1 <UserControl x:Class&#61;"SilverlightOOBDemo.MainPage"
 2     xmlns&#61;"http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 3     xmlns:x&#61;"http://schemas.microsoft.com/winfx/2006/xaml"
 4     xmlns:d&#61;"http://schemas.microsoft.com/expression/blend/2008"
 5     xmlns:mc&#61;"http://schemas.openxmlformats.org/markup-compatibility/2006"
 6     mc:Ignorable&#61;"d"
 7     d:DesignHeight&#61;"300" d:DesignWidth&#61;"400">
 8 
 9     <Grid x:Name&#61;"LayoutRoot" Background&#61;"DimGray">
10         <StackPanel Orientation&#61;"Vertical">
11             <Button x:Name&#61;"btInstall" Content&#61;"安装应用到本地" Width&#61;"200" Height&#61;"50" Click&#61;"btInstall_Click"/>
12             <TextBlock x:Name&#61;"lbStatus" Foreground&#61;"White" HorizontalAlignment&#61;"Center" FontSize&#61;"18"/>
13             <TextBlock x:Name&#61;"lbNetworkStatus" Foreground&#61;"LightGreen" HorizontalAlignment&#61;"Center" FontSize&#61;"18"/>
14         StackPanel>
15     Grid>
16 UserControl>
17 
 1 private void CheckNetworkStatus()
 2         {
 3             if (NetworkInterface.GetIsNetworkAvailable())
 4             {
 5                 lbNetworkStatus.Foreground &#61; new SolidColorBrush(Color.FromArgb(255,90,240,90));
 6                 lbNetworkStatus.Text &#61; "当前网络处于连接状态";
 7             }
 8             else
 9             {
10                 lbNetworkStatus.Foreground &#61; new SolidColorBrush(Colors.Red);
11                 lbNetworkStatus.Text &#61; "当前网络处于断线状态";
12             }
13         }
14 
15         private void NetworkChange_NetworkAddressChanged(object sender, EventArgs e)
16         {
17             CheckNetworkStatus();
18         }
修改构造函数代码&#xff1a;
 1  public MainPage()
 2         {
 3             InitializeComponent();
 4 
 5             if (Application.Current.IsRunningOutOfBrowser)
 6             {
 7                 btInstall.Visibility &#61; Visibility.Collapsed;
 8                 lbStatus.Text &#61; "我正在Out of Browser下运行";
 9             }
10             else
11             {
12                 btInstall.Visibility &#61; Visibility.Visible;
13                 lbStatus.Text &#61; "我正在浏览器中运行";
14             }
15 
16             if (Application.Current.InstallState !&#61; InstallState.Installed)
17             {
18                 btInstall.IsEnabled &#61; true;
19 
20             }
21             else
22             {
23                 btInstall.IsEnabled &#61; false;
24                 btInstall.Content &#61; "应用已经安装到本地";
25             }
26 
27             CheckNetworkStatus();
28 
29             Application.Current.InstallStateChanged &#43;&#61; Current_InstallStateChanged;
30             NetworkChange.NetworkAddressChanged &#43;&#61; new NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged);
31 
32         }
运行后可以在离线状态下&#xff0c;查看网络应用状态&#xff1a;
本文主要讲述Silverlight的Out of Browser应用设置&#xff0c;安装和卸载&#xff0c;属于Silverlight实例开发前的基础&#xff0c;下一篇我将继续介绍Silverlight的Out of Browser应用开发基础。
本篇代码下载&#xff0c;请看附件.

本文出自 “专注Silverlight” 博客&#xff0c;请务必保留此出处http://kevinfan.blog.51cto.com/1037293/347183

转:https://www.cnblogs.com/kingdom_0/articles/2286035.html



推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文讲述了如何通过代码在Android中更改Recycler视图项的背景颜色。通过在onBindViewHolder方法中设置条件判断,可以实现根据条件改变背景颜色的效果。同时,还介绍了如何修改底部边框颜色以及提供了RecyclerView Fragment layout.xml和项目布局文件的示例代码。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
author-avatar
WSF15WEDFV_564
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有