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)

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

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

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

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

        2.安装证书:在上图中点击“更多详细信息”-->“安装证书(I)”。如下图:Silverlight 5 beta新特性探索系列:10.浏览器模式下内嵌HTML+浏览器模式下创建txt文本文件_第3张图片

        3.在弹出的“证书导入向导”窗口中选中“将所有的证书放入下列存储区”--在弹出的“选中证书存储”窗口中,选择“受信任的根证书颁发机构”。如下图:Silverlight 5 beta新特性探索系列:10.浏览器模式下内嵌HTML+浏览器模式下创建txt文本文件_第4张图片

        4.安装签名证书成功

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

        三、提升信任级别

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

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

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

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

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

        最后我们来看本篇文章的实例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( " 文件已经创建成功 " );

}

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

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

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

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

       本实例采用VS2010+Silverlight 5 beta编写,如需源码请点击 SL5Trusted.zip 下载。

你可能感兴趣的:(silverlight)