快速浏览Silverlight3 Beta:使用SaveFileDialog保存到本地文件

简介:
在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,如需转载请自行联系原作者

相关文章

热门文章

最新文章