代码改变世界

随笔分类 -  Silverlight

Silverlight提示“Load 操作失败。远程服务器返回了错误: NotFound”

2017-10-10 14:37 by slmk, 405 阅读, 收藏, 编辑
摘要: 调试时出现“Load 操作失败。远程服务器返回了错误: NotFound”: 一定要注意此错误之前的错误是什么?基本就是用户Cookie的问题,用户没有登录。 有时需要设置成Any CPU 有时重新编译Silverlight项目,问题解决。 阅读全文

Silverlight类百度文库在线文档阅读器

2013-09-12 14:08 by slmk, 1383 阅读, 收藏, 编辑
摘要: 百度文库阅读器是基于Flash的,用Silverlight其实也可以做。 我实现的在线阅读器可以应用于内网文档发布,在线阅览审批等。没有过多的堆积功能,专注于核心功能。主要有以下特性: 1. 基于XPS文档 Flash和Pdf都是Adobe的东西,所以用Flash浏览PDF可能比较容易。而用silv 阅读全文

Silverlight打印注意事项

2013-09-10 17:58 by slmk, 962 阅读, 收藏, 编辑
摘要: 1、Silverlight的打印功能从版本5开始才支持矢量打印,这不但要求打印机支持矢量打印,而且还要安装相应的打印驱动程序。测试你的打印机是否支持矢量打印,可以参考:如何用C#代码检测打印机和驱动是否支持PostScript如果打印机不支持矢量打印,Silverlight会使用图片打印方式,特点是发送到打印机的文档体积很大。只能靠调低打印机的分辨率来解决。2、打印的UI不要包含Effort等高级效果,例如阴影,动画等。或者在打印之前屏蔽掉。否则会造成打印失败。具体的表现是:使用windows XPS文档的虚拟打印机时,生成文档后,有自动消失了。造成有时打印正常,换个报表又失败了。3、权限问题 阅读全文

silverlight 打印预览

2013-05-30 17:25 by slmk, 886 阅读, 收藏, 编辑
摘要: Silverlight默认没有提供打印预览功能,我们可以通过ChildWindow实现一个打印预览窗口。在后台打印逻辑中生成Xaml的可视化树,直接输出到预览窗口的Child属性中,即可显示预览了。真正打印时也执行相同的逻辑即可。Silverlight作为WPF的子集,不同于传统的Windows Form程序,界面的绘制不是通过GDI+进行的,而是通过XAML描述的可视化对象,统统交由WPF进行绘制处理。这也是微软向我们传递的编程理念:XAML+C#搞定一切。包括后来的metro界面(WPF在触摸方面优化的子集),Windows界面编程所经过的GDI->GDI+->WPF的演变,我 阅读全文

[Silverlight]按类型查找模板控件里的子控件

2013-04-23 14:26 by slmk, 526 阅读, 收藏, 编辑
摘要: Silverlight中的控件是基于Xaml模板的控件树形结构,这给控件制作提供了很大的灵活性,可以组合,嵌套等。同时也给控件的查找造成了不便,Silverlight提供了VisualTreeHelper类帮助我们遍历控件树。例如我们要按照控件类型查找控件,可以采用下面的递归算法: public class VisualTree { public static void FindControlByType<T>(DependencyObject container,List<T> ls) where T : DependencyObject { ... 阅读全文

【silverlight】Silverlight TreeViw默认展开节点

2013-01-08 11:14 by slmk, 665 阅读, 收藏, 编辑
摘要: Silverlight的TreeView控件默认是折叠的,如何默认展开节点呢?如果不是绑定的好办,循环设置TreeViewItem.IsExpanded=true;即可。如果是绑定的,例如用了MVVM,可以这样写:<Grid x:Name="LayoutRoot"> <Grid.Resources> <Style x:Key="treeViewStyle" TargetType="sdk:TreeViewItem"> <Setter Property="IsExpanded" 阅读全文

【Silverlight】以MVVM友好的方式使用DataGrid的SelectedItems属性

2012-12-28 17:02 by slmk, 1253 阅读, 收藏, 编辑
摘要: 今天遇到了这样一个问题,通过多选DataGrid中的列,然后批量删除或更新。但是,Silverlight里DataGrid控件的SelectedItems属性无法以MVVM的方式绑定,因为它是个只读属性。后来想到无非是传递到ViewModel中,用CommandParameter传递不就好了。XAML:<Button Content="删除"Margin="4" Command="{Binding DeleteCommand}" CommandParameter="{Binding SelectedItems,Elem 阅读全文

WCF RIA Service错误处理

2012-12-14 15:05 by slmk, 385 阅读, 收藏, 编辑
摘要: 1、服务器端错误处理:[EnableClientAccess()]public class DomainService1 : DomainService{ public IEnumerable<Customer> GetCustomers() { throw new ApplicationException("My exception"); } protected override void OnError(DomainServiceErrorInfo errorInfo) { //记录错误 }}... 阅读全文

WCF Ria Service“操作失败,指定的命名链接在配置中找不到”错误解决方法

2012-12-04 08:51 by slmk, 269 阅读, 收藏, 编辑
摘要: 如果你遇到下面的错误:第一反应应该是web.config中的链接字符串定义不正确,或者没有定义。“命名连接”是根据什么命名的呢?打开Ado.net数据实体文件.edmx文件,查看属性:原来命名是根据“实体容器名称”来的,查看web.config中,应该有一个名为"Entities”的链接字符串,如果没有,就会出现上面的错误。解决方法自然是web.config中配置该名称的链接字符串。 阅读全文

[Silverlight]MVVM+MEF框架Jounce练习(1)

2012-12-01 09:55 by slmk, 1474 阅读, 收藏, 编辑
摘要: 光学不练,对一些概念的理解就只能停留在表面了。这个系列主要记录自己对Jounce框架的理解和测试代码,以加深对MVVM和Silverlight的一些概念的理解。本例主要测试Jounce框架中View和ViewModel的通信。MVVM的优点我认为Model、View和ViewModel的设计原则:模型、视图和视图模型分离,主要有两方面的优点:1. 便于团队协作和单元测试。开发人员开发出适合业务逻辑的Model和ViewModel,并在没有View的情况下就可以做单元测试;美工人员根据ViewModel设计好View;测试人员可以只根据View、ViewModel或者Model其中之一的情况下写 阅读全文

[Silverlight]MVVM+MEF框架Jounce学习(2):标记和绑定

2012-11-29 10:09 by slmk, 1734 阅读, 收藏, 编辑
摘要: 这一部分主要讲解如何绑定View和View Model。IApplicationService接口Jounce实现了 IApplicationService接口,作为一个服务插入到Silverlight应用程序的生命周期。这样,Jounce就有机会在silverlight应用程序开始、结束或者出现未处理的异常时,接管程序的执行。使用Jounce框架的应用程序,App.xaml必须这样定义:<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x=&quo 阅读全文

[Silverlight]MVVM+MEF框架Jounce学习(1):Why?

2012-11-27 15:38 by slmk, 1923 阅读, 收藏, 编辑
摘要: 英文原文:http://csharperimage.jeremylikness.com/2010/10/jounce-part-1-why.html【译者注:因为我英文不好,并且懒,所以我不会原文一字不差的翻译原文,只图达意吧。实在看不下去的对照英文吧:)】Jounce是一个利用MEF和MVVM创建Silverlight应用程序的框架。起因我用Silverlight开发企业应用,是从2.0开始。有些应用需要很强的可扩展性,需要方便的添加视图和模块。有时需要很强的模块化,例如动态加载和压缩dll到客户浏览器。我发现MVVM和MEF是很好的工具,可以方便做单元测试和团队分工合作。我发现每次都从头创 阅读全文

Silverlight 应用程序中未处理的错误 代码:2110 类别: InitializeError

2012-11-26 17:40 by slmk, 2183 阅读, 收藏, 编辑
摘要: 最近老是遇到莫名其妙的错误,今天碰见了这个错误:重新编译,重启机器,清除缓存,还是报错?同样没有详细的错误提示,调试只能得到:google没有解决方法。只好重建一个干净的工程,运行没问题,说明环境正常。一点点移植代码,添加引用时发现有一个dll只要添加上就出错,汗,终于定位到错误了。看看这个dll有何不同呢?查看工程属性,发现此dll的平台是x86,而其他的都是Any CPU。统一改成Any CPU后,清除浏览器缓存,重新编译,运行,问题解决。 阅读全文

【SIlverlight】分享一套企业开发主题

2012-11-25 09:57 by slmk, 2085 阅读, 收藏, 编辑
摘要: Silverlight默认主题时间长了,也视觉疲劳了,于是上网上找了下Silverlight主题。发现SL的主题并不多,下面这套JetPack主题还是SL4时代发布的,不过SL5也能用。用于企业开发还不错,谁有更好的,也告诉我:)下载和安装下载地址:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e9da0eb8-f31b-4490-85b8-92c2f807df9e&displaylang=en这个包里其实包含4套主题,我还是觉得这个比较专业。安装下面的JetPack.vsix:就增加了一个项目模板:使用查看模板 阅读全文

Web开发异常排查的常用方法

2012-11-23 08:54 by slmk, 1940 阅读, 收藏, 编辑
摘要: 异常出现平常程序遇到错误,开发环境下一般都用调试搞定,生产环境下通过查看日志搞定。但也有搞不定的时候,这是我在Silverlight开发时遇到的的错误:如果启用调试,"对不起,程序已经崩溃,无法附加到进程"。怎么办?提示信息太少,盲目怀疑程序哪里写的不对,只会使问题变得更糟,拖延了解决问题的时间。 异常排查此时我们应该查看是哪一个请求引起的错误,方法就是使用浏览器的开发者工具:IE8以上按f12,chrome按下ctrl+shift+I,转到“网路”,开始捕捉:这里我们得到的是一个500错误,知道了是请求.svc时出错了。双击查看响应正文或者直接复制请求url到浏览器访问可 阅读全文

Silverlight LoaderException错误

2012-11-22 11:07 by slmk, 299 阅读, 收藏, 编辑
摘要: 遇到这个错误一般是在SilverLight版本切换的时候,例如由4.0切换到5.0,调试时报”无法加载某某dll“,显示的此dll的版本还是4.0的。这时需要清理一下解决方案,停止自带的Web服务器,再重新运行。 阅读全文

Silverlight清单配置错误:InitializeError 2103

2012-11-22 08:33 by slmk, 2381 阅读, 收藏, 编辑
摘要: 出现原因今天试图将Silverlight程序进入点设为引用的类库里面的App.xaml,结果发现行不通,出现如下错误:SCRIPT5022: Silverlight 应用程序中未处理的错误 代码: 2103 类别: InitializeError 消息: 应用程序无效或格式不正确: 请查看清单所谓的“程序清单”是指:AppManifest.xaml。位于项目的properties文件夹下有此文件的模板。一般出现此错误的原因是Silverlight找不到入口点了,就像C程序找不到main函数了。结论App.xaml只能设为主应用程序的,不能设为类库的。准确的说应该是VS 201... 阅读全文

Silverlight 如何手动打包xap

2012-11-21 15:09 by slmk, 1180 阅读, 收藏, 编辑
摘要: 平时用VS开发Silverlight时,VS会自动为我们打包成xap,如果有不想打包的dll,就把dll属性改为“复制本地=false”。XAP实际是一个压缩包,用winrar或者7zip都可以解压,解压后可以看到里面包含的dll等。有时我们可能要动态加载xap,而xap中的有些dll是重复的,我们不想要。如何修改并手动重新打包成xap呢?还是用winrar或者7zip,这里要压缩成zip格式,并且所有的文件都要位于根目录下。有时可能偷懒,直接在解压出的文件夹上右键压缩了,结果silverlight不认了。 阅读全文

[silverlight] WCF RIA Service的Validation数据验证

2012-11-15 17:42 by slmk, 441 阅读, 收藏, 编辑
摘要: 如果使用WCF RIA Service的话,Validation数据验证就很容易了,只需要在MetaData上作标记就可以了。项目添加域服务类后,会添加下面的元数据文件:编辑里面的实体对象,添加验证条件:public partial class Employee { // 通过此类可将自定义特性附加到 //Employee 类的属性。 // // 例如,下面的代码将 Xyz 属性标记为 //必需属性并指定有效值的格式: // [Required] // [RegularExpre... 阅读全文

【Silverlight5矢量打印】如何用C#代码检测打印机和驱动是否支持PostScript

2012-08-26 11:08 by slmk, 1145 阅读, 收藏, 编辑
摘要: Silverlight5支持PostScript矢量打印,矢量打印相比于位图打印速度更快,生成的打印文件更小。SL5默认会采用PS矢量打印,如果打印机不支持,自动切换到位图打印。虽然微软SL打印组认为PS已经相当普遍,但我想大多数打印机估计并未安装支持PostScript的驱动。HP打印机默认的会是PCL的,估计微软选用PS是学Flash:)如何用代码检测打印机是否支持PostScript呢?代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Co 阅读全文