在Silverlight 5 版本中,已经支持浏览器模式(in-browser)模式下使用WebBrowser控件访问网页和在浏览器模式下创建txt文本文件。当然想要获得这个功能有三个条件在注册表内添加一个新的键、设置XAP签名(如果是在本地http://localhost:做测试时可以不需要这两个条件)和提升信任级别。
第一、在注册表内添加一个新的键AllowElevatedTrustAppsInBrowser
其名为AllowElevatedTrustAppsInBrowser,DWORD类型,值为1。设置Silverlight允许访问一些本地资源。
•键值: 0x00000000 (disabled) or 0x00000001 (enabled)
or
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Silverlight (for 64-bit)

二、将XAP包签名设置XAP包是可信任的应用程序
1.右键点击Silverlight项目-->属性-->签名-->点击选中“为Xap文件签名”-->点击“创建测试证书”。如下图所示:
2.安装证书:在上图中点击“更多详细信息”-->“安装证书(I)”。如下图:
3.在弹出的“证书导入向导”窗口中选中“将所有的证书放入下列存储区”--在弹出的“选中证书存储”窗口中,选择“受信任的根证书颁发机构”。如下图:
4.安装签名证书成功

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


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

最后我们来看本篇文章的实例Demo代码,首先看MainPage.xaml代码如下:
接着我们来看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(
"
文件已经创建成功
"
);
}
最后我们来看点击三个按钮的效果分别如下面三图:



出处:http://www.cnblogs.com/chengxingliang/archive/2011/04/28/2030800.html
本文介绍了如何在Silverlight 5中使用WebBrowser控件在浏览器模式下加载HTML,并详细阐述了实现此功能所需的注册表设置、XAP包签名以及提升信任级别的步骤。通过实例代码展示了按钮点击效果。


被折叠的 条评论
为什么被折叠?



