BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Avalonia先睹为快:面向.NET的跨平台UI工具集

| 作者 Jonathan Allen 关注 524 他的粉丝 ,译者 张卫滨 关注 12 他的粉丝 发布于 2018年2月22日. 估计阅读时间: 3 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!

在.NET核心生态中,常常被人诟病的一个短板就是缺少真正跨平台的UI工具库。过去,在多个平台上都有过相关的尝试,比如SilverlightXamarin Forms,但是它们都没有实现完全XAML风格的跨平台方案。Avalonia尝试计划支持Windows、Linux (GTK)、MacOS、Android和iOS。

尽管它的原则灵感来源于Windows Presentation Foundation (WPF),但这并不是WPF简单直接的发展。在设计时,有了一些重要的变化,比如样式的运行方式。在Avalonia中,样式的运行方式更像CSS,具有样式类和选择器,能够级联和重叠。与之相对的是,WPF每个控件只允许有一个样式。这意味着Avalonia能够减少重复样式。

Avalonia没有使用触发器,而是使用伪类(pseudo-class),比如针对悬停效果的“:pointerover”。其他的伪类包括::focus、:disabled、针对按钮的:pressed、针对复选框的:checked等等。

Avalonia样式只能绑定到StyledProperty上。WPF的DependencyProperty具有相同的基本模式。同时,还支持附加属性。(这对于布局控件很有意义,比如grid需要了解它的子节点要放到什么位置。)

Avalonia有个很有意思的特性,那就是数据绑定语法支持异步操作。例如,Avalonia能够绑定Task<T>或IObservable<T>操作的结果,在其他基于XAML的UI工具集中这是不支持的。

尽管已经有了很大的进展,但目前只有三位开发人员在承担大多数的工作。相应的,他们呼吁更大的开源社区来做一些力所能及的工作。按照Jeremy Koritzinsky的说法,目前最需要帮助的领域是:

文档

大多数的概念性文档、教程以及如何使用的指导。

样例App

使用Avalonia制作类似于WPF的教程应用并凸显它们之间的差异。

XAML专家

帮助我们实现更高级的XAML结构,比如条件和可适配的布局(比如Xamarin.Forms有一定级别的可适配布局)

缺少的通用控件

DataGrid:我们知道需要这个控件,但是目前没有时间移植大量的代码(目前,每个WPF或UWP实现的代码行接近Avalonia的所有代码数量)

2D图像专家

尤其是非DirectX渲染子系统下的文本布局/渲染。我们在非Windows平台上使用的是Skia,它缺少一个文本布局引擎。

Visual Studio Extension

为新的设计师、XAML智能感应更新扩展。

Avalonia目前在GitHub上开发,遵循MIT许可证。

查看英文原文:An Early Look at Avalonia, a Cross-Platform UI Toolkit for .NET

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT