- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Silverlight控件开发讲解
Silverlight控件开发
培
训
讲
解
2010-10月 by zhlin
第一篇Silverlight控件开发基础
内容提要
对Silverlight控件开发的认识
控件开发基础——从样式开始
模版控件的内部结构分析
视觉状态的学习
动画基础
1.1 对Silverlight控件开发的认识
在Silverlight中,一切工作都是控件开发。现从控件开发的角度对Silverlight进行理解,Silverlight的控件分为用户控件、模版控件(或称为自定义控件)两种。在Silverlight项目开发的过程中,我们可创建的页面有以下几种:
序号 页面模版 中文名称 说明 1 Silverlight UserControl 用户控件 大部分开发使用此页面 2 Silverlight Application Class 应用程序入口 3 Silverlight Page 页面 继承自UserControl 4 Silverlight Child Window 子窗体 继承自ContentControl 5 Silverlight TemplateControl 模版控件 自定义控件 6 Silverlight Resource Dictionary 资源字典 样式定义
1、通过Silverlight UserControl创建的页面结构图:
2、通过 Silverlight Page 创建的页面结构图:
2.1、把鼠标选中Page对象,按F12使用对象浏览器查看Page的类实现图:
3、通过Silverlight Child Window 创建的页面结构图:
3.1、把鼠标选中ChildWindow对象,按F12使用对象浏览器查看ChildWindow的类实现图:
4、通过Silverlight TemplateControl 创建的页面结构图:
从上表和创建的页面结构图可以看出,除了应用程序入口和资源字典,在Silverlight项目开发中创建的页面全部是控件,要不是用户控件,要不是模版控件,而资源字典也是为了控件而存在,它负责控件的外观呈现。其中Silverlight Page 只是在继承UserControl的基础上,实现了几个关于页面导航的功能,我们可以把它看成一个实现了页面导航功能的UserControl。而Silverlight Child Window是继承自ContentControl,它是一个模版控件,实现了弹出模态子窗体的功能。
为什么在Silverlight项目开发中,创建的页面全是以UserControl 的形式存在呢?对于这个问题,因为Silverlight是一种B/S+C/s相结合的一种应用程序,所以我们既要从Web的角度去看待Silverlight,也要从Winform的角度去看待Silverlight。
从Web的角度看,Silverlight项目没有自己独立的启动程序——即没有提供给操作系统调用的静态入口函数main()函数,是不能直接运行在操作系统上的,它必须依附于Silverlight插件来运行,所以Silverlight应用程序编译生成后,只有一些被打成.xap包的dll,不会有.exe文件输出。这些dll存储在远程服务端,Silverlight插件把它下载到IE的临时目录,再动态装载运行。
从Winform的角度来看, Silverlight插件是一个Winform的ActiveX 控件,我们开发的Silverlight程序是由这个ActiveX控件来加载并运行的,也就是说我们是直接面向这个Winform 的ActiveX控件来开发Silverlight程序的,从这个层面来看,我们可以很明显的感觉到开发Silverlight程序如同在开发winform一样,它的运行过程就是ActiveX控件(.net框架环境)——加载Silverlight用户控件。
Silverlight程序虽然没有提供给操作系统的入口,但它提供给了Silverlight插件的入口——App.cs。但它不是以静态函数的方式提供的,而是以实例化的方式,在App.cs的构造函数中,注册一个Startup通知事件,用来实例化Silverlight的第一个用户控件。
因为Silverlight插件ActiveX控件内部本身是一个.net框架环境(.net精简框架),所以我们以.net框架开发出来的Silverlight程序可以很好的在里面运行。
在App.cs入口中, RootVisual的类型是UIElement,它是Silverlight控件基类的根,所以:
RootVisual不单可以:
RootVisual = new MainPage(); // MainPage是一个用户控件
文档评论(0)