zoukankan      html  css  js  c++  java
  • WPF&Silverlight5 常用功能差异

    一晃从Wpf转到sl也有半年多了,总想总结一下wpf和sl的差异,今天终于下笔。

    首先来个整体图:

    image

    通过上图可以发现其实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

  • 相关阅读:
    yii中设置提示成功信息,错误提示信息,警告信息
    关于京东评价数目,淘宝评价数目延迟加载
    关于yii的relations
    关于yii验证和yii错误处理
    jquery资源网站
    Facybox弹出层效果
    YII适合做后台的一个扩展
    Yii: 参数检查和错误的集中处理技巧
    Asp.net 备份、还原Ms SQLServer及压缩Access数据库
    天诺网
  • 原文地址:https://www.cnblogs.com/aoldman/p/3277698.html
Copyright © 2011-2022 走看看