本主题包含有关 Windows Presentation Foundation (WPF) 版本 4.5 中的新增功能和增强功能的信息。

本主题包含以下各节:

功能区控件


            

WPF 4.5随承载一个快速访问工具栏、应用程序菜单和选项的 Ribbon 控件。               有关更多信息,请参见功能区概述

用户界面虚拟化发生,当用户界面(UI)元素的子集从的数据项时根据哪些项目中生成出现在屏幕上。               VirtualizingPanel   定义启用分组的数据用户界面虚拟化的 IsVirtualizingWhenGrouping 附加属性。  有关分组的数据的更多信息,请参见如何:使用在XAML,的视图排序和组数据。  有关有效分组数据的更多信息,请参见中的 IsVirtualizingWhenGrouping 附加属性。

VirtualizingPanel的新功能


            
          
  1. 可以指定 VirtualizingPanel,例如 VirtualizingStackPanel,使用该 ScrollUnit 附加属性,是否显示分部项目。                   如果 ScrollUnit 设置为 ItemVirtualizingPanel 将仅显示完全可见的项目。  如果 ScrollUnit 设置为 PixelVirtualizingPanel 可以显示部分可见项。

  2. 使用该 CacheLength 附加属性时,,那么,当 VirtualizingPanel 有效可以指定缓存的范围在视区之前或之后。                   缓存是空间量在或项目没有活动视区下面。  使用缓存避免生成UI元素,并滚动到视图可以提高性能。  缓存填充在较低优先级,以便应用程序不会无响应在操作中。  VirtualizingPanel.CacheLengthUnit   属性确定 VirtualizingPanel.CacheLength使用的度量单位。

绑定到静态属性


            

可以使用静态属性作为数据绑定源。               数据绑定引擎识别属性值更改时,如果静态引发事件。  例如,因此,如果选件类 SomeClass 定义名为 MyProperty的静态属性, SomeClass 可以定义引发的静态事件,当 MyProperty 的值发生更改时。  该静态事件可以使用以下签名之一。

  • public static event EventHandler MyPropertyChanged;

  • public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged;

请注意在第一种情况下,选件类公开通过 EventArgs 到事件处理程序命名 PropertyName的静态事件Changed 。               在第二种情况下,选件类公开通过 PropertyChangedEventArgs 到事件处理程序命名 StaticPropertyChanged 的静态事件。  实现由静态属性使用任一方法,的选件类可以选择引发属性更改通知。

在非UI线程访问集合


            

WPF可以访问和修改在线程的数据收集除了创建集合内容之外。               这使您可以使用后台线程接收从外部源的数据,如数据库,并显示用户界面线程的数据。  使用修改集合的另一个线程,用户界面保持响应对用户交互。

同步和异步验证数据


            

INotifyDataErrorInfo   接口允许数据实体选件类实现自定义验证规则和显示验证结果异步。               此接口还支持自定义错误对象、多个错误每个属性,该属性错误和实体级错误。  有关更多信息,请参见INotifyDataErrorInfo

自动更新数据绑定源


            

如果您使用绑定到数据源的数据更新数据源,可以使用 Delay 属性指定时间通过,属性在目标将更新数据源之前之后。               例如,假设有其 Value 属性数据双向绑定到数据对象属性,并 UpdateSourceTrigger 属性设置为 PropertyChanged的有 Slider 。  在此示例中,那么,当用户移动 SliderSlider 移动的每个像素的源更新。  ,仅当滑块的 Value 停止更改时,源对象通常需要滑块的值。  若要防止太经常更新数据源,请使用 Delay 指定源不应更新,直到一段时间段,在滚动块停止移动后。

WPF支持绑定到实现 ICustomTypeProvider对象的数据,也称为自定义类型。               可以在以下情况下使用自定义类型。

  1. 为数据绑定的 PropertyPath 。                   例如, BindingPath 属性可以引用一个自定义类型的属性。

  2. 作为 DataType 属性的值。

  3. 为确定在 DataGrid的自动生成的列的类型。

在某些情况下,您可能会收到 Binding 和所需信息的 BindingExpression 有关绑定的源和目标对象。               新API添加允许您获取源或目标对象或该关联的属性。  当您具有 BindingExpression时,请使用有关目标与源的以下API获取信息。

 
检查有效的DataContext对象


            

有了项目容器 DataContextItemsControl 的断开连接的情况。               项容器是显示在 ItemsControl的项目的UI元素。  当 ItemsControl 的数据绑定到集合时,项容器为每个项目生成。  在某些情况下,项目容器从可视化树中移除。  项目容器中移除的两个典型的情况是项目从基础集合中移除,并在虚拟化在 ItemsControl启用。  在这些情况下,项目容器的 DataContext 属性将设置为由 BindingOperations.DisconnectedSource 静态属性返回的sentinel。对象。  您应检查 DataContext 是否与 DisconnectedSource 对象相同在访问项容器的 DataContext 之前。

可以将一个数据,排序或筛选。               ,当修改时, WPF 4.5使数据重新排列该数据。  例如,假设应用程序在一个股票上使用 DataGrid 股票列表,并股票由股票值排序。  活动对股票的 CollectionView有效,在 DataGrid 的股票的位置移动,则该股票的值大于另一个常用的值将成为大于还是小于。  有关更多信息,请参见 ICollectionViewLiveShaping 接口。

改进用于建立弱支持对事件


            

实现弱事件模式现在是更加容易,因为操作的用户可以参与,而不需要实现一额外的接口。               ,如果专用 WeakEventManager 为某个特定事件,不存在泛型 WeakEventManager 选件类还使用户能够参与弱事件模式。  有关更多信息,请参见弱事件模式

计划程序选件类的新方法


            

计划程序选件类定义同步和异步操作的新方法。               同步 Invoke 方法定义采用 ActionFunc<TResult> 参数的重载。  新的异步方法, InvokeAsync,也采用 ActionFunc<TResult> 作为回调参数并返回 DispatcherOperationDispatcherOperation<TResult>。  DispatcherOperation   和 DispatcherOperation<TResult> 选件类定义一个 Task 属性。  当您调用 InvokeAsync时,可以使用 DispatcherOperation 或关联的 Task的 await 关键字。  如果所 DispatcherOperationDispatcherOperation<TResult>返回的需要同步等待 Task ,请调用 DispatcherOperationWait 扩展方法。  ;如果操作在调用线程,排队调用 Task.Wait 导致死锁。  有关使用 Task 的更多信息执行异步操作,请参见 任务并行(任务并行库)

事件的标记扩展


            

WPF 4.5支持操作的标记扩展。               在WPF不定义为事件期间使用的标记扩展,第三方可以创建可用于事件的标记扩展。

请参见


            

概念

.NET Framework 4.5 中的新增功能            

WPF4.5 中的新增功能和增强功能的信息的更多相关文章

  1. 12c分区增强功能,新功能(文档ID 1568010.1)

    12c Partitioning Enhancements, New Features (Doc ID 1568010.1) APPLIES TO: Oracle Database - Enterpr ...

  2. VirtualBox虚拟机-安装增强功能

    virtualbox中win10虚拟机怎么安装增强功能 安装VBoxGuestAdditions增强功能后,可增加以下功能: 鼠标集成: 可以无缝的在宿主机与虚拟机之间移动鼠标. 自适应窗口:可以任意 ...

  3. Debian 7 安装使用 Virtualbox及增强功能

    一.安装virtualbox 可以从源里安装 sudo apt-get install virtualbox 也可以下载最新版安装 https://www.virtualbox.org/wiki/Do ...

  4. ADO.NET 中的新增功能

    ADO.NET 中的新增功能: .NET Framework (current version) 以下是 .NET Framework 4.5 中 ADO.NET 的新增功能. SqlClient D ...

  5. .NET Framework 4.5、4.5.1 和 4.5.2 中的新增功能

    .NET Framework 4.5.4.5.1 和 4.5.2 中的新增功能 https://msdn.microsoft.com/zh-cn/library/ms171868.aspx

  6. 【运维手记】virtualbox中centOS安装增强功能

    在virtualbox安装了centOS,想安装增强功能时,系统提示: building the main Guest Additions module Failed 于是尝试了以下两步操作: (1) ...

  7. 在VirtualBox中安装了Ubuntu后,Ubuntu的屏幕分辨率非常小,操作非常不便。通过安装VirtualBox提供的“增强功能组件”,-摘自网络

    在VirtualBox中安装了Ubuntu后,Ubuntu的屏幕分辨率非常小,操作非常不便.通过安装VirtualBox提供的“增强功能组件”,可以解决这一问题,并且使用非常方便. 一.环境 | En ...

  8. 安装VirtualBox中的增强功能包VBoxLinuxAdditions

    首先,增强功能包VBoxLinuxAdditions有什么作用呢?请看: (1)实现客户机和主机间的鼠标切换. (2)与主机实现文件共享. (3)自动调整客户机分辨率. (4)与主机共享剪贴板的内容. ...

  9. Windows 10 开发人员预览版中的新增功能(转自 IT之家)

    Windows 10 开发人员预览版中的新增功能 在Win10预览版中安装工具与SDK后,即可着手创建Windows通用应用或先浏览目前的环境与此前相比都发生了什么变化. 应用建模 文件资源管理器: ...

随机推荐

  1. JS操作DOM常用API总结

    <JS高程>中的DOM部分写的有些繁琐,还没勇气整理,直到看到了这篇博文 Javascript操作DOM常用API总结,顿时有了一种居高临下,一览全局的感觉.不过有时间还是得自己把书里面的 ...

  2. 兼容性所有浏览器的透明CSS设置

    兼容所有浏览器的透明CSS设置: .transparent_class { filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity: 0. ...

  3. android内嵌入webview导致闪退

    这里碰到的是各种闪退情况之一,webview退出后,程序里立马需要申请内存空间做别的事情,这时内存不够就会闪退,做法就是延时个几百毫秒,在这段时间内让java把该回收的内存都回收,然后延时到了再做接下 ...

  4. (实用篇)PHP页面跳转到另一个页面的方法总结

    一.用HTTP头信息  也就是用PHP的header函数.PHP里的header函数的作用就是向浏览器发出由HTTP协议规定的本来应该通过WEB服务器的控制指令,例如声明返回信息的类型("C ...

  5. 关于Highcharts图表组件动态修改属性的方法(API)总结之Series

    Highcharts图表组件内的Series很重要,如果说Categries是其大脑,那么Series就是其心脏.这两者才是Highcharts图表组件的重中之重啊.接下来就为大家介绍关于设置Seri ...

  6. ubuntu默认root密码

    安装完Kubuntu后一直都是用我的用户名bbking登录, 一直没想到root的问题, 以为每次sudo输入的密码就是我的root密码. 刚才为了修改文件夹的所有者,想使用su root切换到roo ...

  7. 8个节点MySQL-cluster安装和配置,含两个管理节点

    换装jdk [root@clusterdata1 software]# rpm -qa | grep javajava-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3. ...

  8. 关于Ajax知识点小节

    URL:统一资源定位符 网络的七层协议:网卡 驱动  网络层(ip)  传输层(tcp udp) 会话层( )  应用层(http.) restful表征状态转移(一种表征架构) CURD 增删改查 ...

  9. Spring+SpringMVC+Mybatis+ehcache

    http://www.tuicool.com/articles/myeANv http://www.mamicode.com/info-detail-1151624.html

  10. 关于JSP的C标签之forEach循环分隔符

    页面中可能说出现在forEach循环中间需要出力分隔符的问题, 比如: 小明 1年级,小王 2年级, 小张 3年级(循环单位是 ${bean.name} ${bean.class}) 此时的逗号出力, ...