快速浏览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.FullNameFile.DirectoryName时会报异常)。按官方的解释是:

    这样的设计避免了提供一个打开任意路径的本地文件的功能,从而使Silverlight运行在一个更为安全的

环境中。


     好了,今天的内容就先到这里了。
    
     源码下载,请点击这里
    
    
     原文链接:http://www.cnblogs.com/daizhj/archive/2009/04/01/1427414.html

     作者: daizhj, 代震军

     Tags: silverlight,3 beta,SaveFileDialog,保存文件,对话框
    
     网址: http://daizhj.cnblogs.com/   

    
posted @   代震军  阅读(3976)  评论(11编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示