微软放弃WPF了?自定义控件库有前途

24 篇文章 1 订阅
4 篇文章 0 订阅

        自 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 版本、时间线和主要增强功能的简明视图:
WPF 版本发布 (YYYY-MM).NET 版本视觉工作室版本主要特点
3.02006-113.0不适用初始发行。
WPF 开发也可以使用 VS 2005(于 2005 年 11 月发布)完成,如此所述,只需添加少量内容。
3.52007-113.5对比 2008更改和改进:
应用程序模型、数据绑定、控件、文档、注释和 3-D UI 元素。
3.5 SP12008-083.5 SP1不适用本机闪屏支持、新的 WebBrowser 控件、DirectX 像素着色器支持。
更快的启动时间和提高位图效果的性能。
4.02010-044.0对比 2010新控件:Calendar、DataGrid 和 DatePicker。
多点触控和操作
4.52012-084.5对比 2012新的 Ribbon 控件
新的 INotifyDataErrorInfo 接口
4.5.12013-104.5.1对比 2013没有重大变化
4.5.22014-054.5.2不适用没有重大变化
4.62015-074.6对比 2015透明子窗口支持
HDPI 和 Touch 改进

WPF 3 - 初始版本

WPF 的旅程正式开始于 2006 年首次发布。由于 WPF 作为 .NET Framework 3.0 的一部分发布,因此 WPF 的第一个版本也称为 WPF 3.0。它在开发时的代号为“Avalon”。区分 WPF 的基本特征是:
  1. 使用 DirectX:为了获得 GPU 加速的渲染,WPF 通过 DirectX 管道渲染和呈现图形(而不是依赖于较旧的 GDI 子系统)。DirectX 允许将图形任务卸载到 GPU。这可以释放 CPU 来做其他工作,从而提高应用程序的性能。 
  2. 通过 XAML 的声明式 UI:可扩展应用程序标记语言 (XAML) 是一种基于 XML 的标记语言。XAML 是 WPF 应用程序可视化呈现背后的语言。 
  3. 依赖属性: WPF 引入了一种称为依赖属性的新型属性。依赖属性依赖于多个提供者来确定其在任何时间点的值。DependencyProperty 的值是动态解析的。依赖属性的主要优点是减少内存占用、值继承和更改通知。 
  4. 数据绑定:数据绑定是在应用程序 UI 和业务逻辑之间建立连接的过程。使用数据绑定,我们可以从任何对象的几乎任何属性中获取数据,并将其绑定到另一个对象的几乎任何其他依赖属性。 
  5. 模板和样式: WPF 为我们提供了基于模板和样式的可扩展性模型,允许我们对控件的视觉外观执行复杂的更改和重新定义,而无需创建新的。您可以通过修改控件的ControlTemplate来更改控件的结构和外观。Style 对象是表示指定控件属性的值的集合。 

WPF 3.5 增强功能

  1. 应用模型的改进:
    • XBAP 现在可以在 Firefox 中运行。
    • Cookie 可以在 XBAP 和来自同一源站点的 Web 应用程序之间共享。
    • 改进了 XAML IntelliSense 体验以提高生产力并扩展本地化支持。
    • 全面的加载项支持,支持来自独立应用程序和 XAML 浏览器应用程序 (XBAP) 的非可视和可视加载项。
  2. 缓存图像的能力:您现在可以将通过 HTTP 下载的图像缓存到本地 Microsoft Internet Explorer 临时文件缓存中,以便后续对图像的请求来自本地磁盘,而不是 Internet。根据图像的大小,这可能会显着提高网络性能。 
  3. 交互式 3-D 图形: 3-D 对象模型中添加了新功能:
    • 3-D 中的输入、焦点和事件支持。
    • 3-D 上的交互式 2-D 内容。
    • 新的转型服务。
  4. 增强的数据绑定:
    • 新的调试机制使调试数据绑定变得更加容易。
    • 数据模型通过提供对 IDataErrorInfo 接口的支持来启用业务层上的验证。此外,验证模型现在支持使用属性语法来设置验证规则。
    • 数据绑定模型现在支持 LINQ 和 XLINQ。
  5. 控件中的文本改进:RichTextBox 和 TextBoxBase 中的改进。 
  6. 文档改进: FlowDocumentPageViewer、FlowDocumentScrollViewer 和 FlowDocumentReader 都有一个名为 Selection 的新公共属性。该属性获取表示文档中所选内容的 TextSelection。 
  7. 注释改进:注释框架现在公开了将注释与相应的注释对象匹配的功能。添加了一个新的接口,IAnchorInfo。此外,还向 AnnotationHelper 类添加了一个返回 IAnchorInfo 对象的新方法 GetAnchorInfo。  

WPF 3.5 SP1 增强功能

  1. 改进了位图效果的性能并加快了启动速度。 
  2. 新的WebBrowser 控件。 
  3. 其他功能包括对业务线应用程序的更好支持、本机闪屏支持、DirectX 像素着色器支持。 

WPF 4 增强功能

  1. 新控件,包括 Calendar、DataGrid 和 DatePicker。 
  2. Multi Touch and Manipulation使您能够创建在 Windows 7 上同时接收来自多个触摸的输入的应用程序。 
  3. 图形和动画支持布局舍入、Pixel Shader 3.0 版、缓存合成和缓动功能。 
  4. System.Windows.Shell命名空间中的新类型使您能够与 Windows 7 任务栏通信并将数据传递到 Windows shell。 
  5. VisualStateManager 支持改变控件的状态。 
  6. Text 改进了文本渲染并支持自定义文本框中的插入符号颜色和选择颜色。 
  7. InputBinding 的 Command 属性、动态对象和 Text 属性支持绑定。 
  8. XAML 浏览器应用程序 (XBAP) 支持与网页的通信并支持完全信任部署。 

WPF 4.5 增强功能

  1. 新的Ribbon 控件,它使您能够实现承载快速访问工具栏、应用程序菜单和选项卡的功能区用户界面。 
  2. 新的INotifyDataErrorInfo接口,支持同步和异步数据验证。 
  3. 能够设置属性更改和数据源更新之间应经过的时间量。 
  4. 改进了对实现弱事件模式的支持。此外,事件现在可以接受标记扩展。 
  5. VirtualizingPanel 和 Dispatcher 类的新功能。 
  6. 数据绑定到静态属性,数据绑定到实现 ICustomTypeProvider 接口的自定义类型,以及从绑定表达式中检索数据绑定信息。 
  7. 能够检查项目容器的数据上下文是否已断开连接。 
  8. 在显示大量分组数据时以及通过访问非 UI 线程上的集合时提高了性能。 

WPF 4.6 增强功能

  1. HDPI 改进: WPF 中的 HDPI 支持现在在 .NET Framework 4.6 中得到了更好的支持。对布局舍入进行了更改,以减少带有边框的控件中的剪辑实例。 
  2. 透明子窗口支持: .NET Framework 4.6 中的 WPF 支持 Windows 8.1 及更高版本中的透明子窗口。这允许您在顶级窗口中创建非矩形和透明的子窗口。您可以通过将 HwndSourceParameters.UsesPerPixelTransparency 属性设置为 true 来启用此功能。 
  3. 触摸改进:在旧版本中,触摸产生不可预测的行为已在 .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控件库界面截图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pyJ5oqA5ben5pCs56CW,size_20,color_FFFFFF,t_70,g_se,x_16

4b3e3abf819992a089ce6156b5942b15.png

1ff734790bbd7c91f487bd635bd3c053.png

91fbad1edfc3b968a0eef89deef7d6f3.png

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值