WPF&Silverlight5 常用功能差异
一晃从Wpf转到sl也有半年多了,总想总结一下wpf和sl的差异,今天终于下笔。
首先来个整体图:

通过上图可以发现其实sl只是使用了wpf的一小部分,只是sl依赖的freamwork有很大部分都一样。
1.sl中未提供的wpf功能
sl 不支持流文档。
神马是流文档?
流文档根据运行时变量(例如,窗口大小、设备分辨率和可选的用户首选项)来动态调整和重新排列文档内容,而不是设置为一个预定义的布局。 此外,流文档还提供一些高级文档功能,例如,分页和分栏。 本主题概述了流文档及其创建方式。
相关类:FlowDocumentReader
sl不支持动态资源,对于 XAML 中所有键资源的资源引用都是静态的。
2.sl中有限支持的wpf功能
sl中的数据绑定不提供以下功能
里面不支持Dataset
不支持直接绑定到 XML 数据或 XPath 绑定。
BindingMode.OneWayToSource 绑定
针对源和目标的单独通知随针对绑定的专用 NotifyOnSourceUpdated 或 NotifyOnTargetUpdated 属性(以及相关事件)更新
Triggers
WPF (尤其是在 .NET Framework 3.5 中)使用触发器概念。触发器支持您在事件发生时或属性更改时进行属性更改或开始操作。Silverlight 对触发器的支持局限于将 EventTrigger 对象用于 Loaded 事件和 BeginStoryboard 操作。但是,通过使用 VisualStateManager 模型,可以实现在先前的 WPF XAML 中使用触发器的任何情形。
路由事件
wpf引入了路由事件概念,在这个概念中,某个事件可由元素树中的多个处理程序处理,而不只是启动了该事件的对象。sl为一小部分的事件包括路由事件概念。但是,sl不支持创建新的路由事件,此外sl不包括preview事件或路由事件的类处理。sl可以重新处理已标记为处理的路由事件,但是只能通过代码实现。
Command
sl中只有少数UI元素支持基础命令结构。但是可以通过行为这种方式解决。
sl里面使用command模型的时候也要注意 不会自动触发canexecute方法,要通过调用canexecuteChanged来更新状态。
可冻结对象
sl不在其对象模型中包括 Freezable 对象。
资源
sl中不存在匿名资源(除了在generic.xaml) 必须指定资源名称,UIElement不能作为资源,ResourceDictionary.MergedDictionaries 中的ResourceDictionary 不应包含key
WPF&Silverlight5 常用功能差异的更多相关文章
- WPF DataGrid常用属性记录
WPF DataGrid常用属性记录 组件常用方法: BeginEdit:使DataGrid进入编辑状态. CancelEdit:取消DataGrid的编辑状态. CollapseRowGroup:闭 ...
- Keil的使用方法 - 常用功能(二)
Ⅰ.概述 上一篇文章是总结关于Keil使用方法-常用功能(一),关于(文件和编译)工具栏每一个按钮的功能描述和快捷键的使用. 我将每一篇Keil使用方法的文章都汇总在一起,回顾前面的总结请点击下面的链 ...
- WPF 3D 常用类(1)
原文:WPF 3D 常用类(1) 几何数据相关类 Geometry3D 抽象类, 用于定义物体的几何数据, 可用于计算HitTest和BoundingBox MeshGeometry3D Geomet ...
- SVN常用功能介绍(二)
说明 上一章节主要描述了SVN的简介.安装搭建,和项目管理人员对SVN的常用操作. 这章主要讲解,SVN对应角色组员,在实际运用中的常用操作. 将SVN服务器项目导入到开发组员的本地电脑里 方式一: ...
- css预处理器 sass和stylus对比以及常用功能
在众多的css预处理器语言中,sass和stylus算是十分优秀的两个.本文主要针对两者的常用功能做个简单的对比分析.在对比中了解二者的差异,同时帮助大家更好的掌握这两种预处理语言. 本文涉及到的sa ...
- C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法
C#构造方法(函数) 一.概括 1.通常创建一个对象的方法如图: 通过 Student tom = new Student(); 创建tom对象,这种创建实例的形式被称为构造方法. 简述:用来初 ...
- 对比学习sass和stylus的常用功能
在众多的css预处理器语言中,sass和stylus算是十分优秀的两个.本文主要针对两者的常用功能做个简单的对比分析.在对比中了解二者的差异,同时帮助大家更好的掌握这两种预处理语言.本文涉及到的sas ...
- [WPF]总结一些我在开发WPF时常用的工具
我从一万二千年前开始写XAML,这么多年用了很多各式各样的工具,现在留在电脑里的.现在还在用的.在写WPF时用的也就那么几个.这篇文章总结了这些工具,希望这些工具可以让WPF开发者事半功倍. 1. V ...
- WebStorm 常用功能的使用技巧分享
WebStorm 是 JetBrain 公司开发的一款 JavaScript IDE,使用非常方便,可以使编写代码过程更加流畅. 本文在这里分享一些常用功能的使用技巧,希望能帮助大家更好的使用这款强大 ...
随机推荐
- odoo 开发 context 上下文的用法
context 这是一个上下文,运用很灵活 得到整个context self.context_get() self.env['res.users'].context_get() 得到cont ...
- 2.6 Go 读取CSV
Go读取CSV文件,其内容被转换成字符串数组 package main import ( "encoding/csv" "fmt" "io/iouti ...
- js小仓库
1.千分位分隔符 const toDecimalMark = num => num.toLocaleString("en-US"); console.log(toDecima ...
- lxml.html 中几种解析器的区别(转)
原文地址:https://blog.csdn.net/chroming/article/details/77104874
- 小程序 - 分包加载上限8M(一)
使用分包 配置方法 假设支持分包的小程序目录结构如下 ├── app.js ├── app.json ├── app.wxss ├── packageA │ └── pages │ ├── c ...
- Testlink 机器重启后Access denied for user 'admin '@'localhost' (using password: YES)解决
问题表现: 装完Testlink,重启系统后,在testlink权限未分配会出现如下提示: 1045 - Access denied for user 'Testlink '@'localhost' ...
- django允许跨域请求配置
django允许跨域请求配置 下载corsheader pip install django-cors-headers 修改setting.py中配置 在INSTALLED_APPS中增加corshe ...
- C++ 隐含的this 指针
c++primer 页数:376-379 备份, 很有嚼头 #include <iostream> #include <string> #include <fstre ...
- Redis双机热备方案--转
http://luyx30.blog.51cto.com/1029851/1350832 参考资料: http://patrick-tang.blogspot.com/2012/06/redis-ke ...
- 那些年的Java学习笔记
1.1L是什么意思??L表示long ,long占用8个字节,表示范围:-9223372036854775808 ~ 9223372036854775807 1l就是1. 2.alt+shift+j ...