摘要:
其实这个控件的技术含量还是有的,至少包含了以下知识点:1)窗口及控件定位及布局 因为里面牵扯到窗口的拖动,大小的调整等。2)模板化控件开发;3)窗口的最大化、最小化处理;4)鼠标事件的处理;5) 窗口的坐标及坐标平移;6) 模态窗口和非模态窗口的状态及管理,窗口之间的关系维护等。本来打算写一个系列的博文来讲解这种控件的开发,后面觉得没必要,整多了,也仅仅是贴代码,还不如直接将控件工程共享出来,这样更完整一些。这对于向进行控件开发的网友来说,算是一个比较实用化的示例。由于后面工作用这个方向的可能性比较小,因此以后不会再发表silverlight方面的博文,希望前面写的能对大家有所帮助。控件下载地 阅读全文
随笔分类 - 2、Silverlight
博文整理(编程技术深入解剖系列--Silverlight,WPF及实战示例)
2011-10-19 07:13 by java线程例子, 181 阅读, 收藏,
摘要:
这个系列主要针对的是Silverlight相关的编程技术,探讨层次比较深入,这里整理了一下,方便大家阅读:WPF架构关键技术剖析(1)--序言WPF架构关键技术剖析(2)--XAML、对象序列化、类动态实例化WPF架构关键技术剖析(3)--做自己的交互Action(1)WPF架构关键技术剖析(3)--做自己的交互Action(2)WPF架构关键技术剖析(3)--做自己的交互Action(3)WPF架构关键技术剖析(4)--总结模拟实现WPF的依赖属性及绑定通知机制(1)--依赖属性模拟实现WPF的依赖属性及绑定通知机制(2)--依赖对象的准备模拟实现WPF的依赖属性及绑定通知机制(3)--依赖 阅读全文
发布一个Silverlight开源控件--希望大家指正
2011-10-11 21:39 by java线程例子, 136 阅读, 收藏,
摘要:
控件放在我的资源里面.这个控件是一个窗口控件,可用于Silverlight的MDI开发,既可以作为MDI的子窗体,又可作为模态窗体使用,但这种模态只针对父窗体,比如MDI窗体中有在A,B两个子窗体,A窗体弹出模态窗体C,只会禁用A窗体,不会影响B窗体。看过老外发布的类似控件,感觉搞得比较复杂,而且没有实现相对模态。该控件有源码,而且有示例用法在里面,希望对大家有用,如有问题,可联系我,谢谢!http://download.csdn.net/detail/hawksoft/3675353 阅读全文
Silverlight索引器应用示例--通用字典数据集服务
2011-10-08 20:38 by java线程例子, 142 阅读, 收藏,
摘要:
现在的silverlight客户端绑定支持索引器方式,比如VM有属性:public Dictionary<string,string> KeyValues{get;set;}在后台CS中我们要访问某个key的值的方式是:KeyValues["XXXX"],其中XXXX是key.而在xaml中可以如下访问:Text="{Bindings Path=KeyValues[XXXX]}"只要索引器本身支持get,set还可以实现双向绑定。但这个双向有一个缺陷,就是如果KeyValues["XXXX"]的值中途改变,没法通知到页面也 阅读全文
Silverlight实战示例总结(兼对Object类型绑定的处理)
2011-09-29 19:49 by java线程例子, 201 阅读, 收藏,
摘要:
在前面的博文中,如果要能进行修改,都是用strValue进行绑定的,但这只说明string类型的在datagrid自动生成的列中是可以编辑的,用Object进行绑定一样也可以编辑,但需要进行一定的处理,而且用strvalue,intvalue分别绑定也不符合开发友好原则,我在示例中有Object属性,而且也进行了通知属性处理,这里我们利用一个convert来处理object类型的绑定,根据字段自带的数据类型,其实我们可以做得很通用化。下面是代码(其它代码见示例):1)ObjectAutoConverter.cs 用于值的转换,在这里可以进行数据类型转换和格式化。不过我处理的比较简单。/// & 阅读全文
Silverlight实战示例补充(数据集模拟挂接事件)
2011-09-27 18:46 by java线程例子, 187 阅读, 收藏,
摘要:
这里是部分代码,其它代码见Silverlight实战示例,直接上代码:1)DynamicDataField.cs [Serializable] public partial class DynamicDataField { public string FieldName { get; set; } public string StrValue { get; set; } public DateTime DTValue { get; set; } public Byte[] ByteArrayValue { get; set; } public string DataType { get; se 阅读全文
MVC、WebForm和Silverlight的一点比较
2011-09-23 19:16 by java线程例子, 256 阅读, 收藏,
摘要:
今天比较深入的接触了一下VS的MVC开发,有点感触,所以写点感言。因为接触不是很久,研究不够深入,写这些主要是测试一下自己的技术敏感度,如果下次发现自己写得不对,其实也是一种提高,所以大家看的时候,就当娱乐吧。我们首先来看看MVC和WebForm:1)首先MVC和webForm还是属于比较典型的BS程序,所以本质上它们没什么区别,理由如下: A)构成:Web的构成是Aspx+CS文件,MVC是M+ASPX+Controller(CS),其实M相对独立,传统的Aspnet也可以拥有这层,因此比较的时候可以除掉相同项M,得到Aspx+cs和Aspx+Controller.cs,大家看看,是不是没什 阅读全文
WPF架构关键技术剖析(4)--总结
2011-09-21 23:36 by java线程例子, 147 阅读, 收藏,
摘要:
结合这个系列博文,加上我前面的对依赖属性模拟的博文,如果大家仔细看过,应该收获很大,可以讲Silverlight的页面交互机制应该是非常的清楚了,而这篇博文的Action实现,其实就是一个简易的交互框架。Silverlight本身提供的Triggers,Behaviors也是这个原理,当然,他们做得更细更好些。理解了这种交互机制,其实我们可以很轻松的增加一些巧妙功能来加快silverlight页面开发。比如,我们多采用MVVM,我们就可以直接执行VM中的公共方法,而不必用什么Command.将你的目标指向页面的ViewModel,怎么访问,自己定义一个规则即可。虽然因为时间关系,我没有按原来的 阅读全文
WPF架构关键技术剖析(3)--做自己的交互Action(3)
2011-09-21 23:27 by java线程例子, 186 阅读, 收藏,
摘要:
1)测试数据准备://这是我学习treeview绑定时用的,也随带给不是很会用treeview绑定的网友们一个例子.A)层级类,树形结构.public class Folder { public ObservableCollection<Folder> Children { get; set; } public string A { get; set; } public string B { get; set; } }B)一个简单的ViewModelpublic class MainViewModel : ViewModelBase { public string Welcome 阅读全文
WPF架构关键技术剖析(3)--做自己的交互Action(2)
2011-09-21 23:17 by java线程例子, 184 阅读, 收藏,
摘要:
下面我们利用附加属性,将我们准备好的Action集合能作为附加属性出现在xaml中:1)附加属性类:/// <summary> /// 附加属性定义类,注意必须是静态的,这有点类似于给类增加扩展方法。 /// </summary> public static class WPFTestDettach { /// <summary> /// 注册附加属性。 /// </summary> public static readonly DependencyProperty MyObjectsProperty = DependencyProperty.R 阅读全文
WPF架构关键技术剖析(3)--做自己的交互Action(1)
2011-09-21 23:01 by java线程例子, 209 阅读, 收藏,
摘要:
本来打算写得细些,但最近要换工作,所以比较忙点,而且也觉得没必要写那么多虚的东西,因此这里不再按照提纲进行,而是从代码入手,看清Silverlight的交互机制.依赖属性和附加属性的基本类都是一样的,但依赖属性和附加属性的用途还是有区别的,依赖属性更多的是属性,而附加属性更多的是扩展,有点类似于类的扩展方法,附加属性非常重要,很多交互的实现其实都是利用这个特性来实现的,附加属性为你对现有UI元素进行交互注入提供了切入点。从某种意义上来讲,这也是AOP编程的一个典范。依赖属性的模拟可以参见我前面的博文,这里不再对依赖属性进行讨论,附加属性的实现我会有具体的代码,因为这些代码也是我们自己的交互Ac 阅读全文
WPF架构关键技术剖析(2)--XAML、对象序列化、类动态实例化
2011-09-18 22:39 by java线程例子, 370 阅读, 收藏,
摘要:
我们知道对于界面元素的描述,WPF的XAML不是第一个,HTML就要早很多,delphi的dfm也是一种。界面描述和界面交互逻辑的分离是有很多好处的,比如有利于可视化设计,有利于界面复用等。微软总是想一统天下,WPF的出现也是这种理想。当然,这种理想的出现也是有实际需求支持的。对于应用程序架构来说,传统的CS和BS都在相互融合,所以整合这两种模式下的界面设计也有其需求,并有利于两种模式的转换和融合。WPF采用XAML作为UI呈现的描述语言,而作为一种语言,XAML本身并没有什么需要特别关注的东西,我们只要去遵循这种规则即可。XAML语言的基本思想更HTML并无太大的区别,只是采用XML格式,依 阅读全文
WPF架构关键技术剖析(1)--序言
2011-09-18 11:01 by java线程例子, 146 阅读, 收藏,
摘要:
技术的发展其实都是有迹可寻的.无论多高超,多神秘的技术都是在实践->经验->理论->再实践->...的过程中发展起来的。今天之所以写这个系列的文章,不是为了炫耀我有多牛,当然更不是为了装B,“天外有天,人外有人”的自知自明我还是有的。我的目的其实很简单: 1)对我两个多月来学习和应用Silverlight做一个总结,以此纪念我为此耗费的青春; 2)给那些和我一样奋战在Coder战线,已经涉足或准备涉足Silverlight,WPF开发的新老同志一些经验,并通过这种交流来减少我们花费在技术跟踪上的成本(时间和精力),多点时间做更有意义的事情,比如多陪陪家人等; 3) 如果 阅读全文
WPF的原理与MVVM模式的思考
2011-09-17 09:02 by java线程例子, 332 阅读, 收藏,
摘要:
对于一般程序语言,执行分为3种:1)编译成二进制机器代码,由操作系统调用执行;典型的如C,C++,Delphi等.2)编译成中间语言,由虚拟机解释来执行或及时编译后执行(前者的典型是java,后者的典型是DotNet).3)不进行编译,有解释器边解释边执行,比较典型的是VB和HTML,Javascript.等上边这些与WPF有关系么?其实是有的,至少原理上非常相似.我们来看看WPF的XAML的执行机制:1)首先是实例化页面类;2)然后构建界面元素(控件树),这里很关键,因为xaml文件里有界面元素的描述性信息,对于一个界面元素E: A)首先实例化E,知道界面元素的类名,利用反射机制很容易实例化 阅读全文
Silverlight调用WCFRIAService 'Not Found'错误小结
2011-09-09 07:06 by java线程例子, 184 阅读, 收藏,
摘要:
1、确实没有服务方法;2、Web.Config中没有相应的DomainService配置(解决:在承载应用添加一个空的域服务,然后删除即可);3、服务方法是在于一个WCF RIA Services类库里,如果承载网站没有引用,或者是如果承载网站下Bin里的dll没有更新也会提示这种错误(VS的自动复制有的时候不是非常有效);(解决:同步更新相应的dll文件到bin目录下)4、服务方法没有打Invoke标签;5、返回的实体序列化有问题,这种情况引起的错误,非常隐蔽,非常让人伤脑筋,但这种情况下,我们是可以跟踪到服务器端代码的,一般都是服务方法调用一离开,客户端就报错。这种情况下,基本都是实体序列 阅读全文
WCF RIA Service实体嵌套问题(更正一下前面的动态数据集模拟)
2011-09-08 22:19 by java线程例子, 165 阅读, 收藏,
摘要:
至少在目前为止,经过测试,我发现一个实体A引用了另外一个实体成员B,如果另外一个成员B又引用实体成员A,如果A为null,没问题,如果A不为空,与B形成实例上的循环引用,就会导致客户端访问提示找不到调用方法的错误,我觉得应该是这个循环引用导致返回客户端时进行序列化时,导致无限循环引起的,当然,如果实例上不形成循环,就没问题。比如A的实例a,B的实例b,a.B引用的是b,而.A引用的如果是a,形成实例上的循环引用,就会有问题,而如果b.A引用的是另外一个A的实例a1,就没问题。这里说明一下,我在前面博文中模拟Datatable数据集中的行对表,列对行的引用是不行的,会导致上面提到的错误,请大家注 阅读全文
利用索引器搞定了一个通用字典数据加载方式。
2011-08-30 20:32 by java线程例子, 272 阅读, 收藏,
摘要:
因为字典都来自统一的字典表,访问方式基本相同,利用绑定可以支持索引的特性,搞了一个通用的字典数据源加载的机制,程序员使用的时候非常方便,可以提供给下拉框,列表框等地方。统一的绑定访问的形式:{binding Path=Dict[XXXX].DictValues},dict属性放在viewmodel基类里面,程序员只要按上述方式绑定即可。索引器方式的绑定,非常的有用,大家可以多试试! 阅读全文