Silverlight 5 beta新特性探索系列:10.浏览器模式下内嵌HTML+浏览器模式下创建txt文本文件

简介:

在Silverlight 5 beta版本中,已经支持浏览器模式(in-browser)模式下使用WebBrowser控件访问网页和在浏览器模式下创建txt文本文件。当然想要获得这个功能有三个条件在注册表内添加一个新的键、设置XAP签名(如果是在本地http://localhost:做测试时可以不需要这两个条件)和提升信任级别。

第一、在注册表内添加一个新的键AllowElevatedTrustAppsInBrowser

其名为AllowElevatedTrustAppsInBrowser,DWORD类型,值为1。设置Silverlight允许访问一些本地资源。

•键名: AllowElevatedTrustAppsInBrowser 
•键类型: DWORD 
•键值: 0x00000000 (disabled) or 0x00000001 (enabled) 

其键注册位置在32位系统和64位系统中不一样的,下面请看:
HKEY_LOCAL_MACHINE\Software\Microsoft\Silverlight\ (for 32-bit) or 
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Silverlight (for 64-bit) 

2011042716403979.jpg

二、将XAP包签名设置XAP包是可信任的应用程序

1.右键点击Silverlight项目-->属性-->签名-->点击选中“为Xap文件签名”-->点击“创建测试证书”。如下图所示:

2011042716450654.jpg

2.安装证书:在上图中点击“更多详细信息”-->“安装证书(I)”。如下图:

2011042716461223.jpg

3.在弹出的“证书导入向导”窗口中选中“将所有的证书放入下列存储区”--在弹出的“选中证书存储”窗口中,选择“受信任的根证书颁发机构”。如下图:

2011042716481121.jpg

4.安装签名证书成功

2011042716483536.jpg

三、提升信任级别

首先我们设置Silverlight的OOB模式提升信任级别如下:

2011042716505760.jpg 2011042716511956.jpg

在这里我们提升了OOB模式的信任级别,此时项目会自动设置从Silverlight项目启动如左图,我们需要手动设置从Web项目启动,如右图:

2011042716532049.jpg2011042716532526.jpg

最后我们来看本篇文章的实例Demo代码,首先看MainPage.xaml代码如下:

<Grid x:Name="LayoutRoot" Background="White">
 <WebBrowser Height="463" HorizontalAlignment="Left" Margin="0,137,0,0"
 Name="webBrowser1" VerticalAlignment="Top" Width="800" />
 <Button Content="加载百度" Height="39" HorizontalAlignment="Left"
 Margin="25,58,0,0" Name="button1" VerticalAlignment="Top"
 Width="141" Click="button1_Click" />
 <Button Content="打开写字本" Height="39" HorizontalAlignment="Left"
 Margin="314,58,0,0" Name="button2" VerticalAlignment="Top"
 Width="141" Click="button2_Click" />
 <Button Content="创建文件" Height="39" HorizontalAlignment="Left"
 Margin="626,58,0,0" Name="button3" VerticalAlignment="Top"
 Width="141" Click="button3_Click" />
</Grid>

接着我们来看CS代码如下:
private void button1_Click(object sender, RoutedEventArgs e)
 {
 //访问百度
 this.webBrowser1.Source = new Uri("http://www.baidu.com/",
 UriKind.RelativeOrAbsolute);
 }

 private void button2_Click(object sender, RoutedEventArgs e)
 {
 //打开一个记事本文件
 dynamic cmd = AutomationFactory.CreateObject("WScript.Shell");
 cmd.Run(@"c:\windows\notepad.exe", 1, true);
 }
 Random _rnd = new Random();
 private void button3_Click(object sender, RoutedEventArgs e)
 {
 // 创建一个文件存放路径
 var tempDirectory = @"c:\temp";
 if (!Directory.Exists(tempDirectory))
 {
 Directory.CreateDirectory(tempDirectory);
 }

 // 创建文件全名
 var filename = string.Format("tempFile-{0}.txt", _rnd.Next(0, 65536));
 var fullPath = System.IO.Path.Combine(tempDirectory, filename);

 // 写入一个新的文件
 using (FileStream fs = File.Create(fullPath))
 using (StreamWriter sr = new StreamWriter(fs, Encoding.UTF8))
 {
 sr.WriteLine("这是一个可被信任的XAP文件");
 }

 // 通知用户
 MessageBox.Show("文件已经创建成功");

 }

最后我们来看点击三个按钮的效果分别如下面三图:

2011042717014148.jpg 2011042717020414.jpg 2011042717022141.jpg
相关文章
|
3月前
|
存储 移动开发 前端开发
HTML新特性【HTML5内联SVG、SVG_矩形、SVG 与 Canvas两者间的区别 、HTML5_MathML 】(三)-全面详解(学习总结---从入门到深化)
HTML新特性【HTML5内联SVG、SVG_矩形、SVG 与 Canvas两者间的区别 、HTML5_MathML 】(三)-全面详解(学习总结---从入门到深化)
51 0
|
13天前
|
移动开发 搜索推荐 JavaScript
【专栏:HTML 进阶篇】HTML5 新特性探索:视频、音频与画布
【4月更文挑战第30天】HTML5的视频、音频和画布元素为网页开发注入新活力。视频和音频元素提供跨平台兼容的播放体验,支持自适应和交互控制;画布则允许动态图形和动画创作。在线视频网站、音乐播放器和游戏开发广泛应用这些特性。尽管面临版权和性能挑战,HTML5持续发展,为网页创新带来更多可能。拥抱这些新特性,创造更丰富的网页世界!
|
25天前
|
存储 移动开发 API
《HTML 简易速速上手小册》第9章:HTML5 新特性(2024 最新版)
《HTML 简易速速上手小册》第9章:HTML5 新特性(2024 最新版)
9 0
|
2月前
|
存储 移动开发 缓存
HTML5的新特性
HTML5的新特性
30 0
|
2月前
|
存储 移动开发 编解码
html5的新特性详解
HTML5是构建和呈现互联网内容的语言描述方式,HTML5在HTML4的基础上增加了许多新特性,使其更具语义化、更加标准化,同时也提高了用户体验和开发效率。以下是HTML5的部
|
4月前
|
JSON 定位技术 数据格式
HTML新特性【账号和获取密钥、初始化、变更地图类型、添加控件、改变控件位置、添加覆盖物、自定义标注图标、添加文本标注】(四)-全面详解(学习总结---从入门到深化)(下)
HTML新特性【账号和获取密钥、初始化、变更地图类型、添加控件、改变控件位置、添加覆盖物、自定义标注图标、添加文本标注】(四)-全面详解(学习总结---从入门到深化)
34 0
|
4月前
|
JavaScript 前端开发 定位技术
HTML新特性【账号和获取密钥、初始化、变更地图类型、添加控件、改变控件位置、添加覆盖物、自定义标注图标、添加文本标注】(四)-全面详解(学习总结---从入门到深化)(上)
HTML新特性【账号和获取密钥、初始化、变更地图类型、添加控件、改变控件位置、添加覆盖物、自定义标注图标、添加文本标注】(四)-全面详解(学习总结---从入门到深化)
36 0
|
4月前
|
存储 移动开发 前端开发
HTML新特性【HTML5内联SVG、SVG_矩形、SVG 与 Canvas两者间的区别 、HTML5_MathML 】(三)-全面详解(学习总结---从入门到深化)(下)
HTML新特性【HTML5内联SVG、SVG_矩形、SVG 与 Canvas两者间的区别 、HTML5_MathML 】(三)-全面详解(学习总结---从入门到深化)
32 0
|
4月前
|
XML 移动开发 前端开发
HTML新特性【HTML5内联SVG、SVG_矩形、SVG 与 Canvas两者间的区别 、HTML5_MathML 】(三)-全面详解(学习总结---从入门到深化)(上)
HTML新特性【HTML5内联SVG、SVG_矩形、SVG 与 Canvas两者间的区别 、HTML5_MathML 】(三)-全面详解(学习总结---从入门到深化)
30 0
|
6月前
|
存储 移动开发 前端开发
HTML5几大新特性
HTML5几大新特性