本篇为译文

原文地址 https://avaloniaui.net/blog/avalonia-11-1-a-quantum-leap-in-cross-platform-ui-development

github地址 https://github.com/AvaloniaUI/Avalonia

 史蒂文·柯克
发布于 7 月 22 日

我们很高兴地宣布发布 Avalonia 11.1,这是对我们喜爱的跨平台 UI 框架的大规模更新。虽然从技术上讲是一个点发布,但改进的数量和影响使其感觉更像是一次重大升级。此版本代表了我们的专业团队和社区贡献者无数个小时的辛勤工作,带来了许多新功能、性能增强和全面改进。让我们深入探讨此版本中最令人兴奋的方面,这些方面将使您能够创建更令人印象深刻的跨平台应用程序。

增强的跨平台支持

Avalonia 一直以支持最广泛的平台而自豪,11.1 版本将其提升到了新的高度:

电视支持:Avalonia 11.1 支持 Samsung Tizen 和 Apple TV 平台,显着拓宽了其在智能电视生态系统中的影响力。这一扩展为希望将其应用程序带到大屏幕上的开发人员开辟了令人兴奋的新可能性。借助 Samsung Tizen 支持,您现在可以瞄准三星智能电视和其他基于 Tizen 的设备,从而进入不断增长的细分市场。同时,添加 Apple TV 支持可让您在 Apple 生态系统中创建令人惊叹的 UI 体验。对于那些希望将应用程序扩展到客厅或创建独特的基于电视的体验的开发人员来说,这些新功能尤其令人兴奋。

浏览器改进:Avalonia 的浏览器支持得到了显着增强。实施了新的软件渲染器,提供了更好的性能和跨浏览器的兼容性。此外,该框架现在允许多个 AvaloniaView 实例,从而支持更复杂和动态的 Web 应用程序。这些改进极大地增强了在 Web 浏览器中运行的 Avalonia 应用程序的灵活性和性能,使其成为基于 Web 的项目的更可行的选择。

Android 和 iOS 增强功能:对 Android 和 iOS 后端进行了各种改进,包括输入处理、键盘交互和一般稳定性增强的修复。这些改进确保了移动平台上的开发人员和最终用户获得更流畅的体验。

性能优化

性能是我们最重要的功能之一,Avalonia 11.1 在这方面提供了重大改进:

Vulkan 后端:主要新增功能是新的 Vulkan 渲染后端。这种现代、低开销的图形 API 可以显着提高性能,尤其是在原生支持它的平台上。 Vulkan 提供对 GPU 的更直接控制,从而更好地利用图形硬件。它可以提高渲染性能并可能降低功耗,这对于移动设备和高性能桌面应用程序尤其有利。

渲染优化:对渲染管道进行了大量优化,包括对脏矩形处理、变换操作和一般绘图性能的改进。这些增强功能可带来更流畅的动画、更快的 UI 更新以及对应用程序的整体响应更快的感觉。该团队在减少不必要的重绘和优化渲染过程方面投入了大量精力,这在具有许多元素的复杂 UI 中应该特别明显。

资源管理:更好地管理资源(包括字体和 XAML 资源)应该会减少内存使用量并缩短应用程序启动时间。该框架现在采用更高效的缓存机制和延迟加载策略,确保仅在需要时加载资源。这不仅可以缩短初始加载时间,还有助于减少应用程序的总体内存占用。

用户界面和用户体验改进

Avalonia 11.1 引入了多项功能,将帮助开发人员创建更加精美和用户友好的界面:

HyperlinkBut​​ton 控件:添加了新的 HyperlinkBut​​ton 控件,使您可以更轻松地在 UI 中实现可点击链接。该控件具有适合超链接的​​内置样式和行为,可以节省开发人员的时间并确保应用程序之间的一致性。

改进的工具提示系统:工具提示系统已通过新功能(如工具提示链接和新的 BetweenShowDelay 属性)进行了彻底修改。工具提示链接允许创建更复杂的信息层次结构,其中从一个元素移动到相关元素可以使相关信息保持可见。 BetweenShowDelay 属性可以对工具提示时间进行细粒度控制,从而允许更复杂的工具提示行为。

增强的 ScrollViewer:ScrollViewer 的改进包括更好地处理鼠标滚轮的滚动捕捉,从而提供更流畅的滚动体验。增强的 ScrollViewer 现在提供更自然的滚动感觉,适应不同的输入方法,从触摸板到传统的鼠标滚轮。这会给您的应用程序带来更加精致的感觉,尤其是那些具有长滚动内容的应用程序。

开发人员生产力功能

Avalonia 11.1 包含多项旨在让开发人员的生活更轻松、更高效的功能:

改进的开发工具:内置的开发人员工具已得到增强,具有焦点跟随器和固定属性的功能等功能。焦点跟随器允许开发人员轻松实时跟踪哪个元素具有焦点,这对于调试复杂的输入场景非常有用。在属性检查器中固定属性的功能使您在与应用程序交互时可以更轻松地监视特定值。

XAML 改进:XAML 系统进行了许多改进,包括更好地处理泛型、更高效的编译绑定以及针对 XAML 相关问题的增强诊断。改进的泛型支持允许更灵活和可重用的组件定义。编译的绑定现在生成更优化的代码,从而实现更好的运行时性能。增强的诊断功能提供更清晰的错误消息和警告,帮助开发人员在开发周期的早期发现并修复问题。

增强的绑定系统:数据绑定系统得到了改进,改进了 MultiBinding、更好地处理样式设置器中的 ICommand 绑定以及更具反应性的 PropertyChanged 事件。 MultiBinding 现在可以更优雅地处理空值并提供更好的性能。样式设置器中 ICommand 绑定的改进使得以更具声明性的方式创建交互式 UI 元素变得更加容易。更具反应性的 PropertyChanged 事件可确保您的 UI 更可靠地与数据模型保持同步。

新转换器类型:引入具有参数支持的 FuncValueConverter,为数据转换场景提供了更大的灵活性。这种新的转换器类型允许更简洁和可读的绑定表达式,特别是对于不需要完整转换器类的简单转换。它对于快速原型设计或简单的一次性转换特别有用。

例如,Avalonia 现在有 ObjectConverters.Equal,其实现如下:

图形和动画增强

此版本中图形功能得到了扩展。

新的像素格式:添加了对 Rgb32 和 Bgr32 像素格式的支持,为图像处理和操作提供了更多选项。这些新格式可以更有效地处理某些类型的图像,并可以提高图像密集型应用程序的性能。它们还提供与某些外部图像库和文件格式更好的兼容性。

改进的画笔处理:TileBrush 和 DrawingBrush 的增强功能为创建复杂的图形效果提供了更强大、更灵活的选项。 TileBrush 现在可以更好地控制平铺行为,包括改进对边缘情况的处理。 DrawingBrush 已针对性能进行了优化,现在支持更复杂的绘图操作。这些改进允许用更少的代码和更好的性能创建更复杂的视觉效果。

动画改进:动画系统得到了改进,包括修复 Animator 类以处理小于零的进度值。这确保了动画更流畅、更可预测,特别是对于复杂序列或处理动态变化的值时。此外,动画的整体性能也得到了改进,允许更复杂的动画而不影响应用程序的响应能力。

可访问性和国际化

Avalonia 不断改进对创建无障碍应用程序的支持:

改进的屏幕阅读器支持:包括 DataGrid 在内的各种控件的自动化属性得到了增强,从而提高了屏幕阅读器兼容性。这包括更好的标签、更具描述性的状态更改以及改进的导航支持。这些增强功能使开发人员可以更轻松地创建可供视力障碍人士使用的应用程序,而无需进行大量额外编码。

更好的输入法编辑器 (IME) 支持:IME 处理得到了改进,特别有利于需要复杂输入法的语言的用户。这包括更好地处理合成事件、改进的光标定位以及更可靠的文本插入。这些增强功能使 Avalonia 应用程序对于中文、日语和韩语等语言的用户来说更易于使用。

增强的本地化支持:添加了新的 API,可以更轻松地本地化内置控件和消息。这包括改进用于管理本地化字符串的资源系统以及更好地支持从右到左的语言。这些功能简化了面向全球受众的应用程序的创建。

针对移动设备的增强功能

认识到移动开发日益增长的重要性,Avalonia 11.1 包括多项针对移动设备的改进:

文本选择手柄:在 TextBox 控件中实现触摸输入的文本选择手柄,在移动设备上提供更原生的感觉。此功能模仿了用户在移动平台上期望的行为,使文本选择和编辑更加直观和用户友好。

安全区域处理:改进了移动设备上安全区域的处理,确保您的 UI 正确适应不同的设备外形尺寸和方向。这对于带有凹口或圆角的设备尤其重要,可确保您的 UI 内容始终可见且不会被设备功能遮挡。

移动手势识别:手势识别的增强功能(尤其是针对触摸设备)可在移动平台上提供更灵敏、更直观的用户体验。这包括对捏合缩放、滑动手势和多点触控交互的改进。这些增强功能使开发人员能够创建更自然的移动界面,而无需实现自定义手势识别器。

新的窗口功能

对窗口管理进行了多项改进,增强了开发人员对其应用程序演示的灵活性和控制力:

多显示器 DPI 缩放:更好地处理跨多个显示器的 DPI 缩放,确保您的应用程序在所有显示器上看起来清晰且尺寸正确。这在当今多样化的计算环境中尤其重要,用户通常拥有多个具有不同缩放系数的显示器。 Avalonia 现在可以更优雅地处理这些场景,确保所有屏幕上的外观一致。

窗口 Z 顺序 API:用于获取窗口 Z 顺序的新 API 使开发人员能够更好地控制窗口堆叠和管理。这对于管理多个窗口或创建自定义窗口管理行为的应用程序特别有用。它允许更复杂的 MDI 样式界面或自定义窗口管理解决方案。

改进的窗口大小调整和定位:窗口大小调整、定位和状态管理的各种增强功能提供了跨平台更可靠和一致的行为。这包括更好地处理最大化和最小化状态、更准确的初始定位以及改进的调整大小行为。这些改进可确保您的应用程序在不同操作系统和窗口管理器中的行为可预测。

文件系统集成

Avalonia 11.1 改进了与本机文件系统的集成,使创建与主机操作系统无缝协作的应用程序变得更加容易:

增强的文件对话框:文件选择器对话框得到了改进,更好地支持文件类型过滤和初始目录选择。这些增强功能可以更轻松地创建符合平台期望的直观文件选择体验。改进的过滤选项允许更精细地控制用户可以选择的文件类型。

文件激活支持:用于处理文件激活事件的新 API 使您可以更轻松地在应用程序中实现文件关联功能。这允许您的 Avalonia 应用程序在用户从操作系统打开文件时做出响应,从而提供更加集成的体验。它对于以文档为中心的应用程序或处理特定文件类型的工具特别有用。

构建和部署改进

为了改进构建和部署过程,进行了一些更改,使创建和分发 Avalonia 应用程序变得更加容易:

NativeAOT 支持:改进了对 NativeAOT 编译的支持,确保 Avalonia 应用程序可以充分利用这种性能增强技术。 NativeAOT 通过提前将应用程序编译为本机代码,可以缩短启动时间并减少内存使用量。这对于启动性能至关重要的桌面应用程序尤其有利。

简化资源处理:对程序集资源处理方式的更改应该会导致应用程序尺寸更小和加载时间更快。优化了资源系统,减少重复,提高加载效率。这可以导致具有许多嵌入式资源的大型应用程序的大小显着减小。

增强的 XAML 编译:XAML 编译过程的改进提供了更好的性能和更可靠的错误报告。编译器现在可以生成更优化的代码,并在检测到问题时提供更清晰的错误消息。这有助于在开发过程中尽早发现问题并提高运行时性能。

这些构建和部署增强应该会带来更小、更快的应用程序。

结论

Avalonia 11.1 代表了该框架向前迈出的重要一步。改进的广度和深度体现了我们团队致力于提供顶级跨平台 UI 开发体验的承诺。从扩展的平台支持和性能优化到增强的开发人员工具和改进的可访问性,此版本几乎涉及框架的每个方面。

我们鼓励所有 Avalonia 开发人员升级到这个新版本,并探索它提供的丰富新功能和改进。您的反馈和贡献对于塑造 Avalonia 的未来非常宝贵,因此请随时与社区分享您的经验和建议。

我们要向核心团队和社区的所有贡献者致以衷心的感谢,是他们使此版本成为可能。你们的辛勤工作、创造力和奉献精神使 Avalonia 成为如此强大且深受喜爱的框架。

祝您开发愉快,我们迫不及待地想看到您使用 Avalonia 11.1 创建的令人惊叹的应用程序!

.NET跨平台UI框架Avalonia 11.1重磅发布的更多相关文章

  1. .NET Core/.NET5/.NET6 开源项目汇总9:客户端跨平台UI框架

    系列目录     [已更新最新开发文章,点击查看详细] .NET Core 实现了跨平台,支持在 Windwos.Linux.macOS上开发与部署,但是也仅限于Web应用程序.对于Windows桌面 ...

  2. .NET Core UI框架Avalonia

    .NET Core UI框架Avalonia,Avalonia是一个基于WPF XAML的跨平台UI框架,并支持多种操作系统:Windows(.NET Framework,.NET Core),Lin ...

  3. 造轮子了!NETCore跨平台UI框架,CPF

    CPF(暂时命名)(Cross platform framework),模仿WPF的框架,支持NETCore的跨平台UI框架,暂时不够完善,只用于测试,暂时只支持Windows和Mac.支持数据绑定, ...

  4. 干!垃圾微软!发布我的Netcore跨平台UI框架 CPF

    什么鬼,我的CPF快写好了,你居然也要搞跨平台UI框架?什么Maui? 之前怎么不早说要搞跨平台UI框架呢?看到谷歌搞flutter眼红了?明年年底发布?又搞这种追别人屁股的烂事情. 什么MVU模式? ...

  5. NetCore跨平台桌面框架Avalonia的OSX程序打包

    虽然工作开发语言已经转到了java,但平时仍会用netcore做一些小工具,提升工作效率,但是笔记本换成了Mac,小工具只能做成命令行形式,很是痛苦,迫切需要一个.net跨平台的桌面程序解决方案. 为 ...

  6. [翻译] .NET 官宣跨平台 UI 框架 MAUI

    MAUI Build 2020 大会上,微软终于正式公布 .NET 上的跨平台框架,正式版将在 .NET 6 和大家见面. MAUI 是日益流行的 Xamarin.Forms 的进化,Xamarin. ...

  7. 微软跨平台UI框架MAUI真的要来啦

    .NET 6 preview已经上线,是时候为在BUILD 2020上宣布的新.NET Multi-platform App UI(MAUI)做准备了.对于客户端应用程序开发人员来说,这一年.NET有 ...

  8. CPF C#跨平台UI框架发布安卓端预览版

    CPF的安卓端适配采用Xamarin的安卓绑定库,而不是Xamarin.Form.CPF和flutter差不多,完全由skia绘制,基本不依赖原生控件. 当前还只是预览版,不建议用在正式项目中. 可能 ...

  9. .NET 跨平台框架Avalonia UI: 填坑指北(一):熟悉UI操作

    Avalonia 是一个跨平台的 .NET UI 框架,支持 Windows.Linux.Mac OSX... (以及Android  IOS soon..) 本篇主要介绍Avalonia开发过程和L ...

  10. .NET 跨平台框架Avalonia UI: 填坑指北(二):在Linux上跑起来了

    上一章回顾:  .NET 跨平台框架Avalonia UI: 填坑指北(一):熟悉UI操作 本篇将要阐述 包括但不仅限于Avalonia及所有Windows到Linux跨平台开发 的一些注意事项: 一 ...

随机推荐

  1. Vue 3 Teleport:掌控渲染的艺术

    title: Vue 3 Teleport:掌控渲染的艺术 date: 2024/6/5 updated: 2024/6/5 description: 这篇文章介绍了Vue3框架中的一个创新特性--T ...

  2. C++常用模板

    常用模板: 数学: 1. 组合数 组合数 #include<bits/stdc++.h> using namespace std; #define ll long long const l ...

  3. 别想宰我,怎么查看云厂商是否超卖?详解 cpu steal time

    据说有些云厂商会超卖,宿主有 96 个核心,结果卖出去 100 多个 vCPU,如果这些虚机负载都不高,大家相安无事,如果这些虚机同时运行一些高负载的任务,相互之间就会抢占 CPU,对应用程序有较大影 ...

  4. 2 分钟,了解 4 个极为有用的 MetricsQL 函数

    夜莺社区的朋友如果问时序库的选型,我一般都会推荐 VictoriaMetrics,除了其性能.稳定性.集群扩展能力之外,VictoriaMetrics 还扩展了 PromQL,提供了 MetricsQ ...

  5. nginx虚拟主机实战

    基于nginx部署网站 虚拟主机指的就是一个独立的站点,具有独立的域名,有完整的www服务,例如网站.FTP.邮件等. Nginx支持多虚拟主机,在一台机器上可以运行完全独立的多个站点. 一.为什么配 ...

  6. 项目管理--PMBOK 读书笔记(8)【项目质量管理】

    1.数据表现-流程图: 流程图也称为过程图,用来显示在一个或者多个输入转化为一个或者多个输入出的过程. 2.质量工具图比较: 发现问题:控制图(七点规则等).趋势图 寻找原因:因果图.流程图 分析原因 ...

  7. 记一次 .NET某工厂报警监控设置 崩溃分析

    一:背景 1. 讲故事 前些天有位朋友在微信上丢了一个崩溃的dump给我,让我帮忙看下为什么出现了崩溃,在 Windows 的事件查看器上显示的是经典的 访问违例 ,即 c0000005 错误码,不管 ...

  8. 短链接口设计&禁用Springboot执行器端点/env的安全性

    短链接口设计 //短链接服务 跳转方式,实现短链接转长链接的请求. @GetMapping("/{code}") public String redirectUrl(@PathVa ...

  9. 5分钟了解LangChain的路由链

    上上篇文章<5分钟理透LangChain的Chain>里用到了顺序链SequentialChain,它可以将多个链按顺序串起来.本文介绍LangChain里的另外1个重要的链:路由链. 1 ...

  10. Spark Structured Streaming(一)基础

    1. 流处理的场景 我们在定义流处理时,会认为它处理的是对无止境的数据集的增量处理.不过对于这个定义来说,很难去与一些实际场景关联起来.在我们讨论流处理的优点与缺点时,先介绍一下流处理的常用场景. 通 ...