BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

.NET 4.6中的WPF

| 作者 Jonathan Allen 关注 594 他的粉丝 ,译者 邵思华 关注 3 他的粉丝 发布于 2015年4月29日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

尽管“WPF已死”的谣言甚嚣尘上,但微软却并没有停止WPF开发的脚步。在.NET 4.6及未来版本的WPF中一共有四个主要的发展方向:

  • 性能
  • 与DirectX的集成
  • 支持现代硬件
  • 工具

在具体谈到这四个方面之前,先让我们谈谈关于支持的问题。微软之前曾经多次在没有经过充分调研的情况下,武断地关闭了一些关于WPF及其它类库的bug报告,更不要说修复它们了。这种态度招致了大量的指责。而作为4.6版本路线图中的一部分,微软将重新打开在Connect中所记录的、投票数达到或超过10的所有bug。虽然这种做法无法弥补之前的过失,但至少表现出微软已经开始认真地对待社区的反馈声音了。

从长期的计划来看,对.NET 4.5.2中的WPF的支持将一直持续到2024年。究其原因,是因为.NET以及WPF被看作是一种操作系统组件,因此它们也自动获得了与操作系统相同的支持周期。

触摸的支持

对触摸的支持改进主要专注于可靠性与性能等方面,尤其是在UI线程处于忙碌状态的情况下。对于多点触摸的事件报告也应当做到更加可靠。

滚动与虚拟化

WPF的基础特色之一在于它可以对某个列表中的控件进行虚拟化。从理论上说,这种方式可以允许在列表中包含超过1万个列表项。而在实际中,有一系列的原因会造成虚拟化的失败。其中之一在于过多的布局循环造成的系统悬挂,而在WPF 4.6中有望解决这一问题。

透明的子窗体

在Windows 8中新增了将子窗体标注为透明的功能,这一行为也加入到WPF的功能中。要实现这一点,需要在某个清单文件中注明该应用将使用Windows 8中的特性。如果该应用程序运行在Windows 7机器上,虽然不会抛出任何异常,但子窗体无法显示为透明状态。

高DPI问题

WPF现在已经理解支持多种分辨率的光标文件了。在加载某个光标文件时,你需要将使用DPI用于比例尺(scale)这一参数设置为“true”,以使这一特性生效。之前,你可以使用某个临时方案以解决这一限制,即手动检测DPI,并加载正确的光标图片。

另一个高DPI问题与在例如组合框等控件中背景的绘制方式有关。其中的bug会造成边框被切等现象,但虽然这个bug本身与所使用的DPI无关,但只有在高DPI的情况下这个bug才会显现出来。

明天我们将继续讨论WPF的长期计划,包括WPF应用本地化。

查看英文原文:WPF in .NET 4.6

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT