我们都知道Xap是Silverlight 初始下载的文件,他的大小决定了初次加载的响应速度,如果Xap文件越大初始打开Silverlight应用的等待时间就会越长,那么如何能够让Xap尽可能的小(只是将必须的组件先打包进来),然后当程序用到那些组件的时候,再按需要来下载这些组件呢?
当然是可以的而且很简单,只要找到Silverlight的项目,右键-> 属性 打开项目配置对话框,按下图配置即可
使用后的效果是怎么样的呢,你会发现在xap同目录多了很多zip的文件,xap文件也明显的变小了,对了这就是将所用的组件分离了出来,否则Xap就是所有zip的总和大小了
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 开发详解代码