写点什么

WPF 与 Silverlight 的关键区别?

2009 年 11 月 16 日

当 WPF 和 Silverlight 越来越受到.NET 开发人员重视的时候,两者间的界限也越来越模糊。回顾六月, Wintellect 发布了鲜为人知但极其重要的“微软WPF 和Silverlight 之异同白皮书”。我们建议GUI 开发人员要通读全部69 页,我们会列出主要的观点及其对相关业务范围开发人员的影响。

依赖关系属性是两个平台的重要组成部分,使用 PropertyMetadata 可代替普通字段来保存属性。Silverlight 仅提供了该类,而 WPF 却有若干子类型可用。

  • UIPropertyMetadata 添加了一个标识符,用于决定“在使用了元数据实例的地方,是否应该禁播依赖关系属性的动画”
  • FrameworkPropertyMetadata 添加一个标识符来指示影响管道的那些属性,包括控制管理、测量和呈现。它也可用于指示属性是否允许数据绑定以及默认的类型。由于 Silverlight 不支持该类,因此所有的数据绑定在默认情况下都是单向的。

Silverlight 不支持隧道事件。两个平台都支持 Direct 事件和 Bubbling 事件。

WPF 支持多种类型的触发器。一个简单的触发器附加到依赖关系属性后,当触发器条件满足的时候便会自动修改样式。除了简单触发器以外,WPF 也支持可响应路由事件或使用数据绑定的触发器。

Silverlight 使用视觉状态管理器代替触发器。WPF 当前并不提供该技术,但会在WPF 4.0 中添加。

Silverlight 仅支持若干标记扩展。除了通用的 StaticResource、Binding 和 TemplateBinding 扩展以外,WPF 还添加了 DynamicResource、RelativeSource、x:Type、x:Static 和 x:Array。

有很多键盘和鼠标事件仅在 WPF 中可用。由于为数众多的关系,我们稍后会列出完整列表。

关于 UIElement 类和 IInputElement 接口。当某个控件被禁用的时候,WPF 使用它们来禁用所有的子控件。Silverlight 不提供这种功能,所以开发人员不得不手动遍历控件树。

在通信方面,Silverlight 仅限于 BasicHttpBinding 和 PollingDuplexHttpBinding。当然,WPF 支持所有的绑定。

最后,打印功能在两者之间也完全不同。WPF 可直接打印可视化树而 Silverlight 则依赖浏览器实现。

查看英文原文: WPF vs. Silverlight – What Really is the Difference?

2009 年 11 月 16 日 20:426064
用户头像

发布了 87 篇内容, 共 17.2 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

浅谈敏捷开发中的设计

czjczk

敏捷开发

【大厂面试02期】Redis过期key是怎么样清理的?

NotFound9

Java 数据库 redis 架构 后端

奈学教育:Hadoop源码编译全流程分享

奈学教育

OFD版式技术解析系列(一):开篇

华宇法律科技

JAVA后端学习路线

敖丙

Java 学习 程序员 Java25周年

Shell 文本处理一则

wong

Shell sed grep

Flink Weekly | 每周社区动态更新-20200520

Apache Flink

大数据 flink 流计算 实时计算 大数据处理

手撕编译原理:汇编语言不会编

贾献华

这场大数据+AI Meetup,一次性安排了大数据当下热门话题

Apache Flink

大数据 flink 流计算 实时计算 大数据处理

缓存与存储的一致性策略:从 CPU 到分布式系统

伴鱼技术团队

缓存 系统设计 cpu 系统架构 架构模式

Docker 容器优雅终止方案

米开朗基杨

Docker

普通二本,毕业三年,北漂之后,我是怎么成为程序猿的。

why技术

个人成长 程序人生 随笔杂谈 北漂

如何挑选一份工作

池建强

求职 找工作

产品的本质,知道却看不到

Neco.W

产品 产品经理 需求 产品开发

一文让你快速上手 Mockito 单元测试框架

mghio

Java spring 单元测试 Mockito

计算机超全核心技术知识

cxuan

后端 计算机基础

Java 走过的创新25年

田晓旭

Java25周年

入门到放弃:理清前端技术概念

大伟

Java ecmascript 前端 Node

Mobaxterm (安装 、汉化、使用)入门教程

Geek_Offset

一周信创舆情观察(5.25~5.31)

统小信uos

基础软件 操作系统 新基建

如何更好的交谈(以英语为例)

七镜花园-董一凡

学习 生活

吉德热泵烘干机解放阳台,引领生活品质新风尚

infoq小陈

女朋友跟我吐槽Java中ArrayList遍历时删除元素的各种姿势

NotFound9

Java 架构 面试 编程语言 后端

Kafka的生产者优秀架构设计

奈学教育

kafka 分布式

读懂才会用 : 带你见识 Redis 的 zset

小眼睛聊技术

redis 学习 程序员 架构 redis6.0.0

千万别学编译原理

池建强

编译原理

原创 | TDD工具集:JUnit、AssertJ和Mockito (十六)编写测试-有条件执行测试

编程道与术

Java 编程 TDD 单元测试 JUnit

MyBatis之启动分析(一)

ytao

mybatis Java 面试

CSS Tricks网站创始人作序推荐,这本书助你成为Web开发高手

图灵社区

CSS Web 开发 设计思维

分享一份阿里架构师 651 多个技术分支的脑图

奈学教育

大数据

Flink 1.10 SQL、HiveCatalog 与事件时间整合示例

Apache Flink

大数据 flink 流计算 实时计算 大数据处理

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

WPF与Silverlight的关键区别?-InfoQ