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

这篇具有很好参考价值的文章主要介绍了微软放弃WPF了?自定义控件库有前途。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        自 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.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 - 初始版本

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控件库界面截图:

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

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

微软放弃WPF了?自定义控件库有前途文章来源地址https://www.toymoban.com/news/detail-452821.html

到了这里,关于微软放弃WPF了?自定义控件库有前途的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • wpf 自定义combox控件

    关键步骤 1、新建usercontrol使用基本的控件进行设计 2、依赖属性的定义,目的:外部调用时候能够使用属性进行控件样式的控制 例如 Width=\\\"200\\\" DisplayMemberPath=\\\"Name\\\" SelectedItem=\\\"{Binding SelectedItem,Mode=TwoWay}\\\" SelectionChanged=\\\"{Binding ProjectSelectCommand}\\\" CommandParameter=\\\"{Binding ElementName = Projec

    2024年02月09日
    浏览(41)
  • wpf自定义控件-单/双箭头线

    using System; using System.ComponentModel; using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Shapes; namespace CustomControls { [TypeDescriptionProvider(typeof(CustomTypeDescriptionProvider))] public class CustomArrow : Shape { public CustomArrow () { Stroke= new SolidColorBrush(Color.FromRgb(0, 140, 206));

    2024年02月15日
    浏览(38)
  • WPF grid控件定义行和列

    在此已经学习了wpf Grid控件, WPF布局控件Grid的基本使用 - 使用kaxaml_bcbobo21cn的博客-CSDN博客 下面继续学习; 定义3行3列的基本代码如下;为了看清效果,设置 ShowGridLines=\\\"True\\\";   减少一列,效果如下;   只有行,没有列;   指定第一列的宽度;   第一列指定宽度,剩下2列

    2024年02月13日
    浏览(50)
  • wpf 为自定义控件添加滚动条

    在WPF中为自定义控件添加滚动条通常涉及将自定义控件置于 ScrollViewer 控件内,并根据需要配置ScrollViewer的属性。以下是一个基本步骤说明: 创建自定义控件 :首先,你有一个自定义控件(比如名为 RWrapPanel ,继承自 WrapPanel 并实现 IScrollInfo 接口以进行平滑滚动管理)。 嵌

    2024年02月01日
    浏览(39)
  • WPF 自定义控件完成库容表盘显示效果

    先看一下显示效果:        需要注意的地方有以下几点: 表盘的刻度分部,长刻度和短刻度显示。 在数值80W时,需要更改刻度盘的颜色渐变。 在数值80W时,更改库容总数背景的显示,也是颜色渐变。刻度盘控件属性定义: 刻度盘的定义: 设置刻度盘的style: 库容总数背

    2024年02月16日
    浏览(36)
  • WPF自定义控件库之Window窗口

    在WPF开发中,默认控件的样式常常无法满足实际的应用需求,我们通常都会采用引入第三方控件库的方式来美化UI,使得应用软件的设计风格更加统一。常用的WPF的UI控件库主要有以下几种,如: Modern UI for WPF , MaterialDesignInXamlToolkit ,PanuonUI,Newbeecoder.UI,WPF UI , AduSkin ,

    2024年02月08日
    浏览(42)
  • WPF自定义控件之ItemsControl鱼眼效果

    原理 先获取鼠标在控件中的坐标,在获取其每一项相对于ItemsControl的坐标,然后计算每一项离当前鼠标的距离,在根据这个距离,对其每一项进行适当的缩放 实现 创建一个类,命名为FishEyeItemsControl   public class FishEyeItemsControl : ItemsControl   添加应用鱼眼效果方法(控制其控

    2024年02月04日
    浏览(37)
  • WPF自定义嵌入弹框控件,支持内容标题自定义

    最近为了实现WPF中弹框组件写了一个小例子: 组件要求: 1.自定义标题 2自定义标题颜色 3提供关闭按钮, 4.弹框内容可由调用方自行嵌入 xaml代码 UserControl x:Class=\\\"WpfApp1.Controls.CustomPopup\\\"              xmlns=\\\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\\\"              xmlns:x=\\\"

    2024年02月16日
    浏览(45)
  • WPF 自定义DataGrid控件样式模板5个

    样式一: 样式代码: 初始化绑定数据C#代码: 效果展示: 样式二: 上面的代码实现了隔行换色的效果,但是没有鼠标选中效果。另外有些用户希望能够进行列头拖动及排序。那么就需要做以下更改: 添加DataGridRow样式: 在引用时,设置DataGrid的RowStyle=\\\"{StaticResource AlertCoun

    2023年04月27日
    浏览(45)
  • 在 WPF 为你的自定义控件添加属性

    首先,在你的自定义控件类 (示例: UserControl1 ) 添加以下代码: 以上代码简化了官方方法的流程,以便你不用再去额外输入不必要的参数,并提前对 sender 进行类型转换。 此后,添加一个属性只需要添加以下代码即可,相比传统方法看起来会非常直观,非常省事。 以上代码中

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包