ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:180.48KB ,
资源ID:20351526      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20351526.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学习笔记Silverlight文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学习笔记Silverlight文档格式.docx

1、2、 独立存储不应该用来存储代码3、 独立存储不应该用来存储配置和部署配置,它们是由管理员来控制的Silverlight利用独立存储用户登录信息Silverlight为客户端,没有了Webform中服务器端为我们常用的会话Session。登录时存储动态用户信息,cookie可以本地存储,减少开销服务端资源。Silverlight中的独立存储恰恰很像Webform中的Cookie。因为Application安全考虑。Silverlight不允许直接操作本地文件系统。但是独立存储机制却提供一个虚拟目录方式访问本地文件系统。当然Silverlight也提供了操作这个虚拟空间的对象的方法。每个Silv

2、erlight Application应用程序都硬盘分配自己独立存储空间。默认大小为1M。也可以根据项目需要修改大小。Isolated Storage根据应用程序作用域不同分为:应用程序和站点两种,使用时分别用IsolatedStorageFile.GetuserStoreForApplication()和IsolatedStorageFile.GetUserStoreForSite()。对于用户信息建议使用IsolatedStorageSetting对象独立存储配置以键值对方式存储。添加键值对:IsolatedStorageSettings settings = IsolatedStorag

3、eSettings.ApplicationSettings; settings.Add(txtkeyName.Text, TxtKeyValue.Text); settings.Save();使用键值对: TxtKeyValue.Text = settingstxtkeyName.Text.ToString();删除键值对: settings.Clear();如上一种简单方式实现。虽然能存储用户登录信息。但有一个缺点:用户在推出的时候必须主动删除才行,否则会一直保存存储空间中,用户下次访问时 无法访问到页面。换一种方式,我们把用户信息尝试放到Application.Current.Resour

4、ce中,但又出现一个问题,保存后刷新页面程序会重新加载app,原来保存用户信息也就丢失了。这种方式也不可取。类似在Cookie的存储周期以及过期时间。同理在IsolatedStorage独立存储中也可以设置过期时间。二、 文件的下载和上传文件的下载:(ASP.net)public void DownLoadFile(String FilePath) / FilePath为要下载的文件地址,即程序中保存的文件 /根据虚拟路径找到文件绝对路径 string filePath = Server.MapPath(FilePath); FileInfo file = new FileInfo(fileP

5、ath); /判断是否存在文件如果存在就实现下载功能 if (file.Exists) Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader(Content-Length, file.Length.ToString();Content-Disposition, attachment; filename= + HttpUtility.UrlEncode(file.Name, System.Text.Encoding.UTF8) + ); Response.ContentType

6、 = application/octet-stream; Response.ContentEncoding = System.Text.Encoding.GetEncoding(gb2312 Response.Filter.Close(); Response.WriteFile(file.FullName); Response.Flush(); Response.End(); Silverlightprivate OpenFileDialog openFile = new OpenFileDialog();将打开的图片显示在Image控件中/弹出文件对象框 if (openFile.ShowD

7、ialog() = true)/这种方法很好用 BitmapImage bmp = new BitmapImage(); /设置图源为用户选择的图片 bmp.SetSource(openFile.File.OpenRead(); image.Source = bmp;上传图片/判断用户是否已选择了图片 if (openFile.File != null) /图片文件名 filename = openFile.File.Name; WebClient webclient = new WebClient(); /指定上传处理的服务地址 Uri uri = new Uri(http:/localho

8、st:2365/Sample.Web/UploadFile.ashx?filename= +filename, UriKind.Absolute); webclient.OpenWriteCompleted += new OpenWriteCompletedEventHandler(webclient_OpenWriteCompleted); /POST图片文件到服务器UploadFile.ashx webclient.OpenWriteAsync(uri, POST,openFile.File.OpenRead(); void webclient_OpenWriteCompleted(obj

9、ect sender, OpenWriteCompletedEventArgs e) /将图片数据流发送到服务器上 Stream inputStream = e.UserState as Stream; Stream outputStream = e.Result; /缓冲区 byte buffer = new byte4096; int bytesRead = 0; while (bytesRead = inputStream.Read(buffer, 0, buffer.Length) 0) outputStream.Write(buffer, 0, bytesRead); /关闭流 ou

10、tputStream.Close(); inputStream.Close(); MessageBox.Show(上传完成!UploadFile.ashx文件public class UploadFile : IHttpHandler public void ProcessRequest (HttpContext context) /获取上传的数据流 Stream sr = context.Request.InputStream; /取得文件名 string filename = context.Requestfilename; try /上传服务器的Upload文件夹里 string pat

11、h =D:银光志Silverlight3.0光盘SourceSample.WebUpload /将数据流写入服务器端 using (FileStream fs = File.Create(path + filename, 4096) while (bytesRead = sr.Read(buffer, 0, buffer.Length) fs.Write(buffer, 0, bytesRead); catch (Exception e) /错误提示 context.Response.ContentType = text/plain context.Response.Write (上传失败,

12、提示信息: + e.Message); finally sr.Dispose(); public bool IsReusable get return false;三、 Silverlight的相对路径问题1 2 3 3.1 同一项目中使用情况新建一个Silverlight程序,则会有ResourceLocation、ResourceLocation.Web两个部分。选择ResourceLocation项目,点击鼠标右键,跳出菜单,选择添加-现有项,引入我们准备好的图片A.jpg,把它重命名为p.jpg. 修改ResourceLocation的Page.xaml文件,主要是Image控件的So

13、urce属性,改为:按F5,运行,我们可以看到图片A.jpg的内容。回到编辑环境,在项目ResourceLocation.Web的ClientBin目录下,添加-现有项,引入我们准备好的图片B.jpg,把它也重命名为p.jpg.然后修改ResourceLocation的Page.xaml文件/p.jpg按F5,运行,我们看到的仍然是图片A.jpg的内容。接下来,我们删除掉ResourceLocation项目中的p.jpg文件按F5,运行,这下,我们看到的图片内容变成了B.jpg图片的内容。实验说明:(1)当资源的分布为ResourceLocation-p.jpgResourceLocation

14、.Web-ClientBin-p.jpg两个位置时,ResourceLocation-p.jpg资源先被定位,如果此处找不到,再到ResourceLocation.Web-ClientBin-p.jpg处寻找,如果此处也找不找,则会报错(2)、Source引用资源的区别图片放在ResourceLocation中时,引用写法: Source=图片放在ResourceLocation.Web-ClientBin中时,引用写法: 反斜杠开头的相对路径,代表的相对位置是应用程序运行的根目录,即ResourceLocation.xap压缩包内,若在这其中寻找不到要引 用的文件,则相对路径的回退机制自动在

15、在ResourceLocation.xap所在的目录,本例即为 ResourceLocation.Web-ClientBin 目录中寻找加以引用。两个位置都没有,才会发生错误。不以/开头,则代表的相对位置是引用该图片的XAML文件所在的目录,本例即Page.xaml文件所在的ResourceLocation目录。(3)、资源文件放置的位置:当我们把图片A.jpg添加到ResourceLocation项目中后,点击此图片,查看它的属性,在生成操作栏我们可以看到默认的选项 是Resource,它表明,当我们生成项目时,此资源是打包在程序集中的,此时我们引用它可以写成 Source=,按F5运行,可

16、以直接看到图片。现在,我们如果把此栏的选项选成:Content,则意味着,我们在生成项目时,此资源将会打包进ResourceLocation.xap文件中,在此情况下,我们重新生成项目,按下F5,运行,可以发现,我们再也看不到图片了(当然,我们要确保在 ResourceLocation.Web- ClientBin目录下没有放置此图片 ,否则系统会到那里去寻找并显示)先别急,我们对image控件的Source属性进行修改,改成Source=,即:加入一个反斜杠,再F5运行,这下,我们可以看到图片了。这说明,我们在放置资源时,我们可以:i、直接把资源文件放在ClienBin文件目录下。此时引用要

17、加入反斜杠。如 Source=ii、把资源文件放在与page.xaml同目录下,此时我们有两个选择:一是把资源文件属性中的“Build Action”栏即:设置为Resource。此时资源打包在程序集,此时引用不用加入反斜杠。二是把资源文件属性中的“Build Action”栏即:Content此时资源打包在.xap压缩包中,这时引用该文件则需要以反斜杠开头。那么,上述放法在性能上有什么区别呢:因为,不以反斜杠开头的图片资源是嵌入到Silverlight程序中,xap文件直接下载到客户端,所以当数据量较大时,不以反斜杠开头的方式加载程序的时间就过长。以开头自然就没上述问题,但是,以反斜杠开头的

18、话,在xaml中设计预览看不到,只有程序运行才可以看到3.2 不同项目中使用这里列出一些常用的设置Image 相对路径的几种方法:假设我有这样一个solution,包括: MyImageLibrary,其中包含一个文件夹ImagesMyImage1.png MyLoadImage是我的Silverlight Application里面也有一个ImagesMyImage2.png, 页面中有一Image控件来分别显示这两个图片1.Build Action=, Copy To OutPut Directory = Do not copy.这时如果需要用另一个项目中的Image,那么需要这样设置Im

19、age路径xaml: code: myImage.Source = new BitmapImage(new Uri(/MyImageLibrary;, UriKind.Relative);这个Uri有如下3部分:/ ResourceLocation是Image所在的Assembly的名字,前面的是必须的。component/是Assembly名字和在此Assembly下具体路径之间的分隔符,必须要有。Images/MyImage1.png 就是所在Assembly中的路径啦。2. Build Action = 这种情况,如果图片在另一个Project中,那是没有办法获得的。只有在同一个Proj

20、ect中的时候,才能够被找到,因为这种设置会把Image嵌入.xap中。如果打开生成的xap,会看到如下:可以看到只有同一个Project中的Image作为Content嵌入到xap中。这时的用法就是Images/MyImage2.png/3.Build Action = NoneCopy Always如果不希望图片被压进Xap文件,而是用户调用的时候再动态Load,那可以用这种方法。这种方法图片会被复制到 xap所在路径下,路径依然是 ImagesMyImage1.png, ImagesMyImage2.png.使用方法如前 或也可以通过代码在后台定义,在页面初始化函数中,添加如下代码,Th

21、emGrid为定义的父级控件:Uri uri = new Uri(, UriKind.Relative); /声明资源字典文件的相对路径 ImplicitStyleManager.SetResourceDictionaryUri(ThemGrid, uri); /设置更新模式为Auto ImplicitStyleManager.SetApplyMode(ThemGrid, ImplicitStylesApplyMode.Auto); /应用样式到控件 ImplicitStyleManager.Apply(ThemGrid);这样之后的效果为:(这个是应用的LayoutRoot的效果)其中蓝色控件的样式为资源字典中没有定义Key值的样式,黄色的为定义了

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1