代码改变世界

Silverlight 程序库缓存与打开/保存文件对话框

2010-02-17 19:12  闫妍  阅读(137)  评论(0编辑  收藏  举报

程序库缓存

我们都知道Xap是Silverlight 初始下载的文件,他的大小决定了初次加载的响应速度,如果Xap文件越大初始打开Silverlight应用的等待时间就会越长,那么如何能够让Xap尽可能的小(只是将必须的组件先打包进来),然后当程序用到那些组件的时候,再按需要来下载这些组件呢?

当然是可以的而且很简单,只要找到Silverlight的项目,右键-> 属性 打开项目配置对话框,按下图配置即可

image

使用后的效果是怎么样的呢,你会发现在xap同目录多了很多zip的文件,xap文件也明显的变小了,对了这就是将所用的组件分离了出来,否则Xap就是所有zip的总和大小了

image

 

打开/保存文件对话框

Silverlight 提供了OpenFileDialog 对话框用来选择客户端本地文件,SaveFileDialog对话框用来保存文件到客户端本地。

OpenFileDialog

        private OpenFileDialog openFile = new OpenFileDialog();
        //弹ˉ出?文?件t对?象ó框ò
        if (openFile.ShowDialog() == true)
        {
            BitmapImage bmp = new BitmapImage();
            //设è置?图?源′为a用?户§选?择?的?图?片?
            bmp.SetSource(openFile.File.OpenRead());
            image.Source = bmp;
        }

SaveFileDialog

        //保£存?文?件t
        private void SaveTextBoxToFile()
        {
            //创′建¨文?件t保£存?对?话°框ò对?象ó
            SaveFileDialog mySaveFileDialog = new SaveFileDialog();
            //设è置?保£存?文?件t的?默?认?后ó缀o类à型í
            mySaveFileDialog.Filter = "文?本?文?件t (.txt)|*.txt|All Files|*.*";
            mySaveFileDialog.FilterIndex = 1;
            //显?示?保£存?对?话°框ò
            bool? ret = mySaveFileDialog.ShowDialog();
            if (ret == true)
            {
                //将?文?件t以?流÷的?方?式?写′到?的?客í户§端?
                using (Stream fs = (Stream)mySaveFileDialog.OpenFile())
                {
                    //指?定¨编à码?为aUTF-8
                    byte[] info = (new UTF8Encoding(true)).GetBytes(tbContent.Text);
                    fs.Write(info, 0, info.Length);
                    fs.Close();
                }
            }
        }

代码片段来自Silverlight 开发详解代码