在Silverlight3 Beta,提供了保存文件对话框,通过它我们可以很方便的将文本(包括图片等)信息
保存到指定的本地文件上,当然这是要求一定权限的,所以在启用VS2008时请选择以“管理员身份”运行,
即:
只有这样才不会在稍会的保存文件时,出现权限不足而无法保存的问题。
首先,我们的XAML文件内容如下:
<
Grid
x:Name
="LayoutRoot"
Background
="AliceBlue"
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
="250"
/>
<
RowDefinition
Height
="25"
/>
<
RowDefinition
Height
="25"
/>
</
Grid.RowDefinitions
>
<
TextBox
Name
="Msg"
Grid.Row
="0"
Text
="请输入内容"
Width
="400"
Height
="200"
FontSize
="16"
/>
<
Button
Name
="SaveFile"
Content
=" 保 存 "
Grid.Row
="1"
Click
="SaveFileClick"
FontSize
="14"
Width
="200"
/>
<
TextBlock
Name
="FileName"
Grid.Row
="2"
FontSize
="14"
/>
</
Grid
>
而相应的CS代码也非常简单:
private
void
SaveFileClick(
object
sender, RoutedEventArgs e)
{
SaveFileDialog sfd
=
new
SaveFileDialog()
{
DefaultExt
=
"
txt
"
,
Filter
=
"
Text files (*.txt)|*.txt|All files (*.*)|*.*
"
,
FilterIndex
=
2
};
if
(sfd.ShowDialog()
==
true
)
{
FileName.Text
=
"
文件名称:
"
+
sfd.File.Name;
using
(Stream stream
=
sfd.OpenFile())
{
Byte[] fileContent
=
System.Text.UTF8Encoding.UTF8.GetBytes(Msg.Text);
stream.Write(fileContent,
0
, fileContent.Length);
stream.Close();
}
}
}
这样,我们就可以运行来看一下效果了:)
当输入结束后点击保存按钮时,系统会提示保存的文件位置,当点击确定后,上面TextBox中的内容
就被保存到该文件中了。
保存文本时,显示被保存的文件名称。
不过当用户选定本地文件的时候,只能得到这个文件的stream实例,而不是这个文件的路径(通过引用
File.FullName或
File.DirectoryName时会报异常)。按官方的解释是:
这样的设计避免了提供一个打开任意路径的本地文件的功能,从而使Silverlight运行在一个更为安全的
环境中。
好了,今天的内容就先到这里了。
源码下载,请
点击这里。
原文链接:
http://www.cnblogs.com/daizhj/archive/2009/04/01/1427414.html
作者: daizhj, 代震军
Tags: silverlight,3 beta,SaveFileDialog,保存文件,对话框
网址: http://daizhj.cnblogs.com/