写点什么

.NET 4.6 中的 WPF

  • 2015-04-28
  • 本文字数:921 字

    阅读完需:约 3 分钟

尽管“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

2015-04-28 07:343307
用户头像

发布了 428 篇内容, 共 176.8 次阅读, 收获喜欢 38 次。

关注

评论

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

使用golang开发数据库周边工具

lixiaofeng

签约计划第二季

8千长文解决前端资源下载全场景问题

梁龙先森

签约计划第二季

线程方法:sleep( )、wait()、join( )、yield( )的区别

JavaEdge

C++软件开发中的时间

行者孙

c++ 签约计划第二季 chrono datetime iso8601

每个前端都值得拥有自己的组件库,就像每个冬天都拥有春秋裤⛄️

速冻鱼

前端 组件库 签约计划第二季 12月日更

NCF框架如何实现WebApi(四)

MartyZane

实战 签约计划第二季 NCF DDD框架 WebApi

Python Qt GUI设计:QMdiArea和QMdiSubWindow类实现多文档界面(拓展篇—3)

不脱发的程序猿

Python qt GUI设计 Qt Company 多文档界面

【docker 总结】第一篇 - docker 简介和安装

Brave

Docker 12月日更

Maven 如何打包 Spring Boot 项目

HoneyMoose

C#中的结构与类

喵叔

28天写作 12月日更

用 Go + Redis 实现分布式锁

万俊峰Kevin

微服务 高并发 分布式锁 go-zero Go 语言

NCF 如何对接三方的功能(五)

MartyZane

支付 短信 签约计划第二季 NCF DDD框架

聊聊 Kafka: Consumer 源码解析之 Consumer 如何加入 Consumer Group

老周聊架构

签约计划第二季

Go+ 上下文处理教程(5.3)

liuzhen007

28天写作 12月日更

数据大体系(四)——标签

圣迪

大数据 标签 标签体系 数据体系

Dubbo 框架学习笔记三

风翱

dubbo 12月日更

Confluence 如何在页面中显示目录

HoneyMoose

关于分布式事务的思考

yuexin_tech

2021年最委屈的一件事

将军-技术演讲力教练

Python Qt GUI设计:QScrollBar类实现窗口水平或垂直滑动条效果(拓展篇—4)

不脱发的程序猿

Python qt GUI设计 Qt Company 滑动条效果

聊聊 Kafka: Consumer 源码解析之 ConsumerNetworkClient

老周聊架构

签约计划第二季

[Pulsar] Broker处理消息确认

Zike Yang

Apache Pulsar 12月日更

NCF 实战应用合集全解析

MartyZane

实战 内容合集 签约计划第二季 NCF DDD框架

C++构造那些事:三五O法则

行者孙

c++ 签约计划第二季

Prometheus Exporter (二十五)HAProxy Exporter

耳东@Erdong

Prometheus 28天写作 exporter 12月日更 HAProxy

C++ 三种智能指针的使用场景

行者孙

c++ smart pointer 签约计划第二季

尝试

Nydia

Maven 如何打包 Spring Boot 项目打包的发布 Jar 名字

HoneyMoose

C++实现unique_ptr

行者孙

c++ DIY 签约计划第二季 unique_ptr

Maven 3 进行安装

HoneyMoose

C++的explicit关键字

行者孙

c++ 签约计划第二季 explicit

.NET 4.6中的WPF_语言 & 开发_Jonathan Allen_InfoQ精选文章