自 Microsoft 于 2006 年将 WPF作为 .NET 框架的一部分引入以来,该平台在 Windows 开发人员中越来越受欢迎。令我惊讶的是,到2015年为止.NET 4.6版本升级后,WPF再也没有版本升级过。最近我一直在寻找 WPF 主要版本及其迄今为止的进展。令我惊讶的是,在互联网没有资源可以提供 WPF 版本的简洁外观。然后我在这方面做了一些努力,并提出了这篇文章。
介绍
WPF是一个用于创建令人惊叹的 GUI 应用程序的框架。它在 .NET 社区中非常流行,以至于近 10% 的新创建项目都是 WPF。
但是当我搜索它的主要版本和各个版本带来的增强时,我找不到详细的资源。不幸的是,在 MSDN 上也没有提供此类摘要的介绍。因此,我从各种资源中收集了信息,并在本文中进行了介绍。我已经在需要的地方提供了这些资源的链接,并且在本文的参考资料部分提供了更多链接,因为这些链接将成为进一步研究的方向。我衷心感谢那些伟大的博客/文章的作者。
内容
这篇文章有以下几个部分:
- WPF 版本和主要增强功能
- WPF 3 - 初始版本
- WPF 3.5 增强功能
- WPF 3.5 SP1 增强功能
- WPF 4 增强功能
- WPF 4.5 增强功能
- WPF 4.6 增强功能
WPF 版本和主要增强功能
WPF 版本 | 发布 (YYYY-MM) | .NET 版本 | 视觉工作室版本 | 主要特点 |
---|---|---|---|---|
3.0 | 2006-11 | 3.0 | 不适用 | 初始发行。 WPF 开发也可以使用 VS 2005(于 2005 年 11 月发布)完成,如此处所述,只需添加少量内容。 |
3.5 | 2007-11 | 3.5 | 对比 2008 | 更改和改进: 应用程序模型、数据绑定、控件、文档、注释和 3-D UI 元素。 |
3.5 SP1 | 2008-08 | 3.5 SP1 | 不适用 | 本机闪屏支持、新的 WebBrowser 控件、DirectX 像素着色器支持。 更快的启动时间和提高位图效果的性能。 |
4.0 | 2010-04 | 4.0 | 对比 2010 | 新控件:Calendar、DataGrid 和 DatePicker。 多点触控和操作 |
4.5 | 2012-08 | 4.5 | 对比 2012 | 新的 Ribbon 控件 新的 INotifyDataErrorInfo 接口 |
4.5.1 | 2013-10 | 4.5.1 | 对比 2013 | 没有重大变化 |
4.5.2 | 2014-05 | 4.5.2 | 不适用 | 没有重大变化 |
4.6 | 2015-07 | 4.6 | 对比 2015 | 透明子窗口支持 HDPI 和 Touch 改进 |
WPF 3 - 初始版本
- 使用 DirectX:为了获得 GPU 加速的渲染,WPF 通过 DirectX 管道渲染和呈现图形(而不是依赖于较旧的 GDI 子系统)。DirectX 允许将图形任务卸载到 GPU。这可以释放 CPU 来做其他工作,从而提高应用程序的性能。
- 通过 XAML 的声明式 UI:可扩展应用程序标记语言 (XAML) 是一种基于 XML 的标记语言。XAML 是 WPF 应用程序可视化呈现背后的语言。
- 依赖属性: WPF 引入了一种称为依赖属性的新型属性。依赖属性依赖于多个提供者来确定其在任何时间点的值。DependencyProperty 的值是动态解析的。依赖属性的主要优点是减少内存占用、值继承和更改通知。
- 数据绑定:数据绑定是在应用程序 UI 和业务逻辑之间建立连接的过程。使用数据绑定,我们可以从任何对象的几乎任何属性中获取数据,并将其绑定到另一个对象的几乎任何其他依赖属性。
- 模板和样式: WPF 为我们提供了基于模板和样式的可扩展性模型,允许我们对控件的视觉外观执行复杂的更改和重新定义,而无需创建新的。您可以通过修改控件的ControlTemplate来更改控件的结构和外观。Style 对象是表示指定控件属性的值的集合。
WPF 3.5 增强功能
-
应用模型的改进:
- XBAP 现在可以在 Firefox 中运行。
- Cookie 可以在 XBAP 和来自同一源站点的 Web 应用程序之间共享。
- 改进了 XAML IntelliSense 体验以提高生产力并扩展本地化支持。
- 全面的加载项支持,支持来自独立应用程序和 XAML 浏览器应用程序 (XBAP) 的非可视和可视加载项。
- 缓存图像的能力:您现在可以将通过 HTTP 下载的图像缓存到本地 Microsoft Internet Explorer 临时文件缓存中,以便后续对图像的请求来自本地磁盘,而不是 Internet。根据图像的大小,这可能会显着提高网络性能。
-
交互式 3-D 图形: 3-D 对象模型中添加了新功能:
- 3-D 中的输入、焦点和事件支持。
- 3-D 上的交互式 2-D 内容。
- 新的转型服务。
-
增强的数据绑定:
- 新的调试机制使调试数据绑定变得更加容易。
- 数据模型通过提供对 IDataErrorInfo 接口的支持来启用业务层上的验证。此外,验证模型现在支持使用属性语法来设置验证规则。
- 数据绑定模型现在支持 LINQ 和 XLINQ。
- 控件中的文本改进:RichTextBox 和 TextBoxBase 中的改进。
- 文档改进: FlowDocumentPageViewer、FlowDocumentScrollViewer 和 FlowDocumentReader 都有一个名为 Selection 的新公共属性。该属性获取表示文档中所选内容的 TextSelection。
- 注释改进:注释框架现在公开了将注释与相应的注释对象匹配的功能。添加了一个新的接口,IAnchorInfo。此外,还向 AnnotationHelper 类添加了一个返回 IAnchorInfo 对象的新方法 GetAnchorInfo。
WPF 3.5 SP1 增强功能
- 改进了位图效果的性能并加快了启动速度。
- 新的WebBrowser 控件。
- 其他功能包括对业务线应用程序的更好支持、本机闪屏支持、DirectX 像素着色器支持。
WPF 4 增强功能
- 新控件,包括 Calendar、DataGrid 和 DatePicker。
- Multi Touch and Manipulation使您能够创建在 Windows 7 上同时接收来自多个触摸的输入的应用程序。
- 图形和动画支持布局舍入、Pixel Shader 3.0 版、缓存合成和缓动功能。
- System.Windows.Shell命名空间中的新类型使您能够与 Windows 7 任务栏通信并将数据传递到 Windows shell。
- VisualStateManager 支持改变控件的状态。
- Text 改进了文本渲染并支持自定义文本框中的插入符号颜色和选择颜色。
- InputBinding 的 Command 属性、动态对象和 Text 属性支持绑定。
- XAML 浏览器应用程序 (XBAP) 支持与网页的通信并支持完全信任部署。
WPF 4.5 增强功能
- 新的Ribbon 控件,它使您能够实现承载快速访问工具栏、应用程序菜单和选项卡的功能区用户界面。
- 新的INotifyDataErrorInfo接口,支持同步和异步数据验证。
- 能够设置属性更改和数据源更新之间应经过的时间量。
- 改进了对实现弱事件模式的支持。此外,事件现在可以接受标记扩展。
- VirtualizingPanel 和 Dispatcher 类的新功能。
- 数据绑定到静态属性,数据绑定到实现 ICustomTypeProvider 接口的自定义类型,以及从绑定表达式中检索数据绑定信息。
- 能够检查项目容器的数据上下文是否已断开连接。
- 在显示大量分组数据时以及通过访问非 UI 线程上的集合时提高了性能。
WPF 4.6 增强功能
- HDPI 改进: WPF 中的 HDPI 支持现在在 .NET Framework 4.6 中得到了更好的支持。对布局舍入进行了更改,以减少带有边框的控件中的剪辑实例。
- 透明子窗口支持: .NET Framework 4.6 中的 WPF 支持 Windows 8.1 及更高版本中的透明子窗口。这允许您在顶级窗口中创建非矩形和透明的子窗口。您可以通过将 HwndSourceParameters.UsesPerPixelTransparency 属性设置为 true 来启用此功能。
- 触摸改进:在旧版本中,触摸产生不可预测的行为已在 .NET Framework 4.6 中得到解决。Windows Store 应用程序和 WPF 应用程序的双击阈值现在在 Windows 8.1 及更高版本中相同。
通过以上详细版本介绍,WPF到2015年为止就暂停更新了,最近的WinUI3提供很多WPF没有的组件,说明 WPF自定义控件库有很大的需求。为此推荐一套轻量级的、基于MVVM框架的第三方界面库:Newbeecoder.UI
Newbeecoder.UI开源项目
Newbeecoder.UI 控件库Demo下载https://share.weiyun.com/py6W1dcK
UI控件库界面截图:
文章来源:https://www.toymoban.com/news/detail-452821.html
文章来源地址https://www.toymoban.com/news/detail-452821.html
到了这里,关于微软放弃WPF了?自定义控件库有前途的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!