【翻译】WPF4.5新特性(MSDN的翻译读不太懂)
我很在意WPF的发展,有人说微软不再维护WPF了,无所谓,随他去。
MSDN上有简体版:http://msdn.microsoft.com/zh-cn/library/vstudio/bb613588.aspx,但翻译的有点糟糕
英文原文地址:http://msdn.microsoft.com/library/vstudio/bb613588
下面是我的翻译:
Ribbon Control:
WPF4.5包含Ribbon control;Ribbon control包含快速访问工具栏,系统菜单栏和标签页。
获取更多信息,请查看Ribbon Overview
显示大量分组数据性能提升:
当屏幕上需要呈现大量的分组数据时,UI可以进行界面虚拟化。
VirtualizingPanel类定义了IsVirtualizingWhenGrouping属性。
这个属性可以使UI在呈现分组数据时进行界面虚拟化。
如果你想了解分组数据的更多信息,
请看:“怎样用xaml为分组数据排序”(译注:这个MSDN上就没给出链接)
如果你想了解虚拟化呈现分组数据的的相关信息
请看:“IsVirtualizingWhenGrouping”扩展属性的相关内容
针对VirtualizingPanel的新特性
1.
你可以使用ScrollUnit附加属性来指定一个VirtualizingPanel(VirtualizingStackPanel)显示部分的数据项
如果ScrollUnit被设置为Item,VirtualizingPanel将只显示容器内的可见的数据项。
如果ScrollUnit被设置为Pixel,VirtualizingPanel将显示呈现在屏幕上的那一部分。(译注:这两句的内容有待验证)
2.
你可以使用CacheLength附加属性来指定VirtualizingPanel的缓存大小(呈现前和呈现后都可以指定)
这个缓存是VirtualizingPanel不适用虚拟化的方式呈现数据之前或之后的缓存空间
使用缓存是为了避免在用户滚动滚动条时呈现界面元素。以此提示用户滚动滚动条时界面的响应速度。
.NET在分配这个缓存时使用了一个较低的优先权。以免用户在操作系统时界面反应迟钝。
VirtualizingPanel.CacheLengthUnit属性标志这缓存大小的单位
绑定到静态属性
WPF支持绑定到静态属性,
数据绑定引擎监控静态属性,一旦静态属性的值发生改变,将会触发一个指定的事件
例如:
如果有一个类,取名叫做SomeClass;
它有一个静态属性,取名叫做MyProperty;
在这个类内部可以按如方式定义静态事件:
public static event EventHandler MyPropertyChanged;
当MyProperty的值改变时,这个事件将被触发。
注意:
第一:事件的名字必须为:[静态属性名]changed
第二:SomeClass类必须包含一个名为StaticPropertyChanged的事件(定义方式如下),
public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged;
在非UI线程访问集合
你可以在一个非UI线程中访问和修改UI线程中的集合数据。
这样你就可以使用后台线程从UI线程中接收数据。
当你使用另一个线程修改数据集合的时候,展现在用户界面上的数据也会被相应的修改。
验证数据正确性
你可以使用INotifyErrorInfo接口来给数据实体类定义验证规则,
这个接口会异步验证用户录入的信息,并把结果展现在界面上。
这个接口也支持自定义错误对象,在一个属性上定义多个验证逻辑,跨属性的验证逻辑(译注:一个属性的值导致另一个属性验证不通过)
还有实体层面的错误(译注:enty-level errors这一句不知道是什么意思)
要想了解更多信息,请看:http://msdn.microsoft.com/en-us/library/vstudio/system.componentmodel.inotifydataerrorinfo
延迟更新数据绑定的数据源
如果你使用数据绑定来更新数据源,那么你可以使用delay属性来指定多久之后,把数据的更改通知数据源。
例如:你有一个slider,它的值双向绑定到一个数据源,并且UpdateSourceTrigger属性被设置为PropertyChanged
这样当一个用户滑动这个slider的时候,slider滑块的位置每改变一个像素,数据源都要发生相应的更改。
其实,我们只需要在slider停止滑动的时候更新数据源就可以了。
为了避免数据源被频繁的更新,可以使用delay属性来解决这个问题(译注:这里是挺长的一句,懒得翻译了)。
绑定到实现了ICustomTypeProvider接口的类型
WPF支持绑定到ICustomTypeProvider的继承类型,
1.可以绑定到PropertyType类型的属性,例如,可以把Path属性可以绑定到一个自定义类型
2.可以绑定到一个DataType类型的属性
3.作为一个可以决定DataGrid中自动生成的列的属性
----------------------------------------------
还有一些特性没有翻译,下一篇再翻译吧
另外有一个专家唱衰WPF,地址看这里:http://www.infoq.com/articles/Win8-LOB-Options
【翻译】WPF4.5新特性(MSDN的翻译读不太懂)的更多相关文章
- WPF4.5新特性(MSDN的翻译读不太懂)
WPF4.5新特性(MSDN的翻译读不太懂) 1. 新的Doctype声明 XHTML的声明太长了,我相信很少会有前端开发人员能手写出这个Doctype声明. <!DOCTYPE html PU ...
- 【转载】《Ext JS 4 First Look》翻译之一:新特性
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:^_^肥仔John 原文地址:http://www.cnblogs. ...
- Swift 2.2 的新特性
导读:本文来自SwiftGG翻译组,作者@walkingway基于苹果Swift官方博客中Ted Kremenek所撰写的"Swift 2.2 Released!"文章进行了关于S ...
- Java1.0-1.12各个版本的新特性
JDK Version 1.0 1996-01-23 Oak(橡树) 初代版本,伟大的一个里程碑,但是是纯解释运行,使用外挂JIT,性能比较差,运行速度慢. JDK Version 1.1 1997- ...
- 2017 css新特性
2017年要学习的三个CSS新特性 这是翻译的一篇文章,原文是:3 New CSS Features to Learn in 2017,翻译的不是很好,如有疑问欢迎指出. 新的一年,我们有一系列新的东 ...
- Java8 的一些新特性总结
目前Java8已经发布很多个版本了,对于Java8中的新特性虽然有各位大神进行jdk8的英文特性文档翻译,但都太官方化语言,对照几篇翻译本人对新特性文档做一下总结,以帮助我和各位不了解Java8新特性 ...
- [转]JDK1.0到12各版本新特性
原文链接 JDK Version 1.0 1996-01-23 Oak(橡树) 初代版本,伟大的一个里程碑,但是是纯解释运行,使用外挂JIT,性能比较差,运行速度慢.JDK Version 1.1 1 ...
- [翻译] C# 8.0 新特性 Redis基本使用及百亿数据量中的使用技巧分享(附视频地址及观看指南) 【由浅至深】redis 实现发布订阅的几种方式 .NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐
[翻译] C# 8.0 新特性 2018-11-13 17:04 by Rwing, 1179 阅读, 24 评论, 收藏, 编辑 原文: Building C# 8.0[译注:原文主标题如此,但内容 ...
- [翻译] C# 8.0 新特性
原文: Building C# 8.0 [译注:原文主标题如此,但内容大部分为新特性介绍,所以意译标题为 "C# 8.0 新特性"] C# 的下一个主要版本是 8.0.我们已经为它 ...
随机推荐
- 【MySQL】-2 函数、分组、子查询、联合查询
函数 Mysql的函数特性没有SQL可移植性强. 大多数情况下支持的函数: 处理文本串的函数: RTrim():处理列值右边的空格 LTrim():处理列值左边的空格 Trim():处理列值的左右 ...
- Spring AOP配置方式
AOP 面向切面编程,允许在 java 应用中的方法调用的前后做一些处理. 本文通过实例介绍两种主要的Spring AOP 配置方式:xml 方式配置,注解方式配置 XML 方式配置 1. 项目包类结 ...
- Unity的几个特殊文件夹
1.以.开头的文件夹会被unity忽略,资源不会被导入,脚本不会编译. 2.Standard Assets和Pro Standard Assets:在这个文件夹中的脚本最先被编译. 3.Editor: ...
- 走进JDK(八)------AbstractSet
说完了list,再说说colletion另外一个重要的子集set,set里不允许有重复数据,但是不是无序的.先看下set的整个架构吧: 一.类定义 public abstract class Abst ...
- virtual关键字
出于多态的考虑,为了覆盖, 子类同名覆盖函数(函数名.参数.返回值都相同) virtual void print(): 这也许会使人联想到函数的重载,但稍加对比就会发现两者是完全不同的:(1)重载的几 ...
- HDU 4309 Seikimatsu Occult Tonneru (状压 + 网络流)
题意:输入 n 个城市 m 条边,但是边有三种有向边 a b c d,第一种是 d 是 0,那么就是一条普通的路,可以通过无穷多人,如果 d < 0,那么就是隧道,这个隧道是可以藏 c 个人, ...
- 配置微信jssdk自定义分享
前段时间做这个功能的时候遇到这个问题,之前的话是微信自动抓取界面第一张图,现在微信更新api,必须自行配置,接入jssdk,才能实现该功能. 详细可以查看微信的jssdk文档 微信官方开发者文档 ...
- SWPU-ACM集训队周赛之组队赛(3-11)G题题解
点这里去做题 水水水水水,不难发现如下表 t 1 2 3 4 v 1 3 5 7 s 1 4 9 16 明显s=t*t 题目中对10000取模即取后四位,即对1000取余 #include<st ...
- pyinstaller打包程序 带图片
首选说一下,这种打包方式只能在本电脑上使用运行正常 准备:.py文件:你的程序 gif文件:你要用的图片 第一步: 在上面文件所在目录打开cmd 输入 pyi-makespec FP.py 会生成一个 ...
- 背水一战 Windows 10 (74) - 控件(控件基类): UIElement - 与 CanDrag 相关的事件, 与 AllowDrop 相关的事件
[源码下载] 背水一战 Windows 10 (74) - 控件(控件基类): UIElement - 与 CanDrag 相关的事件, 与 AllowDrop 相关的事件 作者:webabcd 介绍 ...