在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运行在一个更为安全的 环境中。 好了,今天的内容就先到这里了。
本文转自 daizhenjun 51CTO博客,原文链接:http://blog.51cto.com/daizhj/145038,如需转载请自行联系原作者