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,使用非常方便,可以使编写代码过程更加流畅. 本文在这里分享一些常用功能的使用技巧,希望能帮助大家更好的使用这款强大 ...
随机推荐
- 【Python】子域名查询脚本
脚本学习,多写写就会啦,来一发个人编写的超级无敌low的子域名查询脚本 #coding:utf-8 import re import requests import urllib import url ...
- scrapy源码分析(转)
记录一下两个讲解scrapy源码的博客: 1.http://kaito-kidd.com/2016/11/21/scrapy-code-analyze-component-initialization ...
- js获取字符串字节的位数
ifSubUser.getBlength = function(str){ ;i--;){ n += str.charCodeAt(i) > ? : ; } return n; }
- How do I use screen on the Linux systems?
Scope The screen utility provides a way to run a command on a Linux system, detach from it, and then ...
- AngularJs学习笔记--Managing Service Dependencies
原版地址:http://docs.angularjs.org/guide/dev_guide.services.managing_dependencies angular允许service将其他ser ...
- 自动化测试之旅--selenium+python--001
在学习selenium之前,首先感谢网络上的虫师和乙醇老师,或许他们并不知道我这个菜鸟的存在,但是我仍然要感谢他们,因为在学习的路上拜读了许多他们的博客和文章,对于我来说有着很重要的意义,因此在学习之 ...
- PaymentServlet代码
package ${enclosing_package}; import java.io.IOException; import java.util.ResourceBundle; import ja ...
- bzoj 5319: [Jsoi2018]军训列队
Description Solution 最优情况可以是所有人按位置从小到大排序之后依次占到自己 \(K+\) 排名的位置上去 因为每一个休息位置不同,那么一定递增,所以一定存在一个分界点,左边的是往 ...
- Hadoop实战之二~ hadoop作业调度详解(1)
对Hadoop的最感兴趣的地方,也就在于Hadoop的作业调度了,在正式介绍如何搭建Hadoop之前,深入理解一下Hadoop的作业调度很有必要.我们不一定能用得上Hadoop,但是如果理通顺Hado ...
- spring整合struts2和hibernate
1.spring 1.1 jar包 1.2 spring.xml <?xml version="1.0" encoding="UTF-8"?> &l ...