随笔分类 - Silverlight
Silverlight的点点滴滴
摘要:有时候我们可能在Panel(StackPanel、Canvas、Grid)上或者是在一些默认不支持Focus的控件上添加了KeyDown或者KeyUp,可是残酷的现实告诉我们,这是无法触发的,怎么办呢,很简单,只需一句代码。 private void MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { Grid1.Focus(); }也就是在鼠标单击事件中,让容器(或者其他控件)调用Focus方法,使其尝试获得焦点。小伙伴们是不是尝试过后发现还是不行,哈哈哈,那...
阅读全文
摘要:本文简介1.定义简单的Style2.应用Style到元素3.动态加载Style资源文件4.Style的继承5.组织内编写Style(在元素内)6.自动应用Style到指定类型元素7.Style绑定表达式8.Behaviors的准备工作9.创建Actions10.在元素(Element)上使用Action11.创建TargetedTriggerAction.12.创建Behaviors13.一些微软提供的Actions,Triggers,Behaviors1.定义简单的Style Silverlight和css是完全不同的,通过Style标签定义,一个Style必须...
阅读全文
摘要:本文简介:1.为什么要使用OOB?使用OOB的作用?2.如何实现OOB模式3.对OOB进行一些设置;4.检测OOB的安装状态;5.更新应用程序;6.WebBrowser控件;7.桌面通知窗口;8.记录窗体的状态;9.提升信任;10.子窗体(非ChildWindow,同时可响应的多个窗体);11.Com组件访问;12.在浏览器中提升信任。1.理解Oob 实现OOB之后将有如下的作用: (1)获得一个桌面的快捷方式; (2)可以实现离线访问(当然要结合本地存储); (3)获得更高的信任权限。2.实现一个最简单的OOB应用程序 (1)右键Silverlight应用程序选择Silverlight选项.
阅读全文
摘要:最近在做一个WCF端生成word的功能,在Silverlight端调用WCF传递一系列参数之后,发现会出现错误。经过多次测试是因为我传递了图片的byte[]过去,结果导致参数长度超出了限制,就over了。又经过了多方资料的查询,最终得到了解决方案,主要是对web.config进行正确的配置,代码如下:<system.serviceModel> <behaviors> <serviceBehaviors> <behavior name="FileServiceBehavior"> <serviceMetadata http
阅读全文
摘要:Silverlight中,刚发现一个问题可空数值类型,binding到文本框后,文本框清空后不会设置为null,这个问题是由于文本框过滤了空值,可以用TargetNullValue属性防止空值被过滤,以下语句供参考:Text={BindingPropertyName,Mode=TwoWay,TargetNullValue=''}
阅读全文
摘要:一、观察者模式(一对多的对象归属,当一个对象发生了改变,它的所属对象自动通知和改变) System.ComponentModel.INotifyPropertyChanged,该接口是观察者模式的部分,当属性的值发生改变后去通知订阅者(使用者). 该接口仅包含一个事件event PropertyChangedEventHandler PropertyChanged,当类继承了该接口,并实现该事件即可完成通知,如下: public class Product : INotifyPropertyChanged { private string price; ...
阅读全文
摘要:Binding Validation Rules:<TextBox> <TextBox.Text> <Binding> <Binding.ValidationRules> <ExceptionValidationRule /> </Binding.ValidationRules> </Binding></TextBox.Text></TextBox>在WPF的验证中引入了ValidationRule验证规则概念,提供一种为检查用户输入的有效性而创建自定义规则的方法。属性:Validate
阅读全文
摘要:Event:在Silverlight和WPF中没有使用.net的LCR事件,而是使用Routed路由事件,根本原因是因为Silverlight控件的节点树。一个简单的示例:public static readonly RoutedEvent MyRoutedEvent =EventManager.RegisterRoutedEvent("MyEvent", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MyClass));是不是很熟悉,没错和定义附加属性(依赖属性)的方式类似,解释下参数:public
阅读全文
摘要:大家都知道在Silverlight中无法直接使用System.IO进行操作文件,当然这个是为了安全考虑,不过Silverlight提供了其他的操作方法,原理近似,同样很简单。提到Silverlight中的文件操作,第一个肯定是独立存储Isolated Store,这个东东相当于于一个本地的小型存储空间,通过它可以把一些不重要的数据(用户的一些配置信息或者文件)IsolatedStorageFile:保存在客户端,由于这个空间是可以在本地查看得到,同时用户也可以随意的删除这些文件件以及文件,所以不要存放重要的信息。IsolatedStorageFile.GetUserStoreForApplic
阅读全文
摘要:使用StringFormat属性进行格式化字符串:在Silverlight中可以使用StringFormat(原理和ToString("格式",new CultureInfo("en-US"))一样)对字符串进行格式化,比如可以将字符串转换为小数、百分比、金钱格式等,也可以将字符串转换为指定的时间格式。如果设置Converter和StringFormat属性,则会先对数据值应用转换器,然后应用StringFormat。当将Binding上的StringFormat设置为撰写字符串格式时,只能指定一个参数。如果使用MultiBinding(点击访问MSDN
阅读全文
摘要:其实关于验证的博文已经出现了很多,个人推荐的还是jv9的关于验证的文章.http://kb.cnblogs.com/page/74390/当然本文是有部分和jv9文章的内容类似,不过在其基础上又多出了更多的验证方式和其他常用的技巧和功能。首先分类下验证的方式:一、异常方式,即在属性的Setter中throw出异常,则只要在XAML中配置相应属性即可显示二、使用BindingValidationError事件进行验证三、使用IDataErrorInfo(同步验证)和INotifyDataErrorInfo(异步和同步验证,异步的验证IDataErrorInfo和DataAnnotations无法
阅读全文
摘要:Silverlight中经常会用到多线程来处理一些复杂的业务,或者是过程较长的业务,下面为大家总结了Silverlight常用的处理多线程的方法。主要使用的对象如下:1.System.ComponentModel.BackgroundWorker2.System.Threading.Interlocked3.lock关键字4.Thread5.ThreadPool6.EventWaitHandle -通知其他线程是否可入的类7.Timer8.Monitor提供同步访问对象的机制9.ThreadStaticAttribute - 所指定的静态变量对每个线程都是唯一的下面一一来进行介绍和使用:一、S
阅读全文
摘要:其实在Silverlight中有一个部分非常重要,那就是模板,这个模板是最复杂但也是最巧妙的地方,因为有了模板就可以制定任何你想要的控件,但是这个模板也是最复杂的地方,因为其太过灵活了,下面看一个ListBox的模板设置:<ListBox Name="lstProducts" HorizontalContentAlignment="Stretch"SelectionChanged="lstProducts_SelectionChanged"><ListBox.ItemTemplate><DataTempl
阅读全文
摘要:近日朋友提到了在Ria Service中访问存储过程的问题,本以为使用EF简单的实现,结果令人大跌眼镜,复杂程度远不是我想的那么简单,虽然他也没多复杂,但的确花费了我一天的时间来研究解决,废话不多说,直接讲解。一、创建Silverlight项目(启用RIA Service)点击OK之后一个Silverlight应用程序就创建好了二、创建Entity Framework模型右键Web应用程序,Add(添加),然后选择New Item(添加项)选择Data(数据)模板,选择ADO.NET Entity Data Model,给文件起个名字,点击添加下图中第一个选项是从数据库中选择一个数据库,作为E
阅读全文
摘要:Silverlight虽然是以插件形式来显示的,但是它和JS以及HTML的交互还是很方便的,下面一一道来Silverlight得到浏览器的信息:BrowserInformation b = HtmlPage.BrowserInformation;lblInfo.Text = "Name: " + b.Name;lblInfo.Text += "\nBrowser Version: " + b.BrowserVersion.ToString();lblInfo.Text += "\nPlatform: " + b.Platform;lb
阅读全文
摘要:VisualTransition:表示当控件从一个状态转换到另一个状态时发生的可视行为。VisualState:表示控件在特定状态下的可视外观。其实可以看到这两个是有本质区别的,其实在没有VisualTransition的情况下VSM的功能已经是完成了,但是这个过程显得过于生硬,所以提到了VisualTransition。VisualTransition表示从一个状态到另一个状态之间发生的可视行为,而VisualState是达到另一个状态后保持的可视外观。如果使用自定义的transition,如下:<VisualStateGroup.Transitions><VisualTr
阅读全文
摘要:当创建了一个自定义控件之后,由于不能在代码中写样式代码,也无法在控件运行时候指定Template,为了解决这个问题可以使用Generic.xaml来实现。Generic.xaml可以作为一个资源字典来理解,在其里边写自定义的模板或者是样式,下面看看怎么使用:1.首先在Silverlight Application(Application Class library)右键添加文件夹,键入名字Theme(必须是这个)2.右键Theme文件夹新建文件,选择XML文件模板,写入名字 Generic.xaml(必须)3.打开Generic.xaml文件 键入代码<ResourceDictionar
阅读全文
摘要:首先看下创建Action和Behavior的首要条件,由于Action和Behavior原本是Blend特有的,不过没关系,可以在Blend的目录中找到我们需要的dll文件打开c:\Program Files\MicrosoftSDKs\Expression\Blend\Silverlight\v4.0\Librariest目录找到System.Windows.Interactivity.dll,这个就是需要的核心文件Behavior包含三个元素,trigger,action,behavior这三个东西是需要合作完成任务的,当触发一些事件或者调用一个Action则触发一个Trigger;Tri
阅读全文
摘要:在Silverlight中需要经常和Build Action打交道,没办法,谁让Silverlight的程序打包好是一个XAP文件呢,问题来了,我们可以选择文件是包含在XAP中,或者在XAP的旁边(即和XAP是同一个目录),因为这样取决于XAP下载速度的快慢以及访问文件时候路径的差异,下面看看分别设置这几种方式。在看设置Build Action之前先看下,设置Copy to Output Directory(如何复制文件到生成目录,个人感觉这个和访问文件的路径没有什么关系)的设置:资源文件的 Copy to OutPut Directory 属性,这个属性有如下三个选项:Action说明备注D
阅读全文
摘要:Silverlight中提供了StoryBoard实现动画,可是StoryBoard的性能实在不敢恭维,特别是动画很大的时候,计算机的CPU和内存的狂增,如此一来性能实在太差,在默认的动画效果中动画实现的效果是 根据每分钟 60帧(标准的是一分钟60帧,即一秒一帧来实现动画的呈现),不过这个过程我们不用担心因为是Silverlight自己计算好的来完成一个好的动画。废话不多说,开始看看有哪几种方式可以来对动画进行优化:一、使用Object标签的maxFramerate属性该属性的默认值就是60,当然也就是标准的,看看怎么设置没错,就是这么简单,当value值越小(小于标准的60)动画的速度就越
阅读全文

浙公网安备 33010602011771号