Silverlight实例教程 - Out of Browser存取本地文件系统2011-09-05在前文,我们讲述了Silverlight Out of Browser的基础以及自定义模式应用 。本篇,我们将讲述Silverlight Out of Browser应用的重点 - 创建可信任应用 ,也称为Trusted Application. 早在Silverlight 3,Silverlight Out of Browser的功能由于权限的限制无法很好的满足用户的正常存取需求,仅能实现将 Web应用脱离浏览器。而在Silverlight 4中,通过提升应用信任权限,大大增强 了Silverlight Out of Browser的功能,在权限允许的情况下,用户可以自由有 访问本地目录,也可以执行本地应用程序,另外通过调用COM组件,实现更多更强 大的本地应用操作。下面我们将实例讲述Silverlight Out of Browser可信任应 用 - 存取本地文件系统。本篇中,我们将基于上篇教程提供的项目SilverlightOOBDemo进行演示操作。首先需要确认SilverlightOOBDemo项目允许用户提升应用信任权限。这样, OOB应用将被允许访问用户本地资源。

Silverlight 4对于本地文件夹的存取,并非代表存取所有本地磁盘目录,目 前为止,Silverlight 4 API仅支持存取“我的文档”,“我的音乐”,“我的图片 ”和“我的视频”目录以及“Program Files”和“Cookies”目录,而如果想对 所有磁盘目录进行访问,则需要使用COM功能进行操作,我们将在下篇讲述,本篇 将着重讲述 Silverlight 4 API对“我的”系列目录的操作方法。在实现具体功能前,首先需要为项目添加两个新文件,一个是资源文件 Resources.xaml,该资源文件引用自开源控件BlackLight资源样式,主要目的是 为了创建新按钮演示效果,如下图:

另一个是小图片控件ThumbImage.xaml,该文件是用于载入“我的图片”目录后 的图片略缩图,其代码较为简单,
1 <UserControl x:Class="SilverlightOOBDemo.ThumbImage"
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" Margin="10">
10 <Image x:Name="ThumbnailImage" Height="145" Width="225" />
11 </Grid>
12 </UserControl>
1 namespace SilverlightOOBDemo
2 {
3 public partial class ThumbImage : UserControl
4 {
5 private Image _OriginalImage;
6 public Image OriginalImage
7 {
8 get
9 {
10 return _OriginalImage;
11 }
12 set
13 {
14 this._OriginalImage = value;
15 ThumbnailImage.Source = new WriteableBitmap(_OriginalImage, null);
16 }
17 }
18
19 public ThumbImage()
20 {
21 InitializeComponent();
22 }
23 }
24 }