写点什么

Avalonia Beta 1 对 WPF 做了很多改进

  • 2018-03-20
  • 本文字数:886 字

    阅读完需:约 3 分钟

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

Avalonia 将自己定义为“基于 WPF(使用 XAML 、数据绑定以及 lookless 控件等)的跨平台.NET UI 框架。”在第一版公测之后,Avalonia 已经展现了它在旧版WPF XAML 上的有趣改进。

传统XAML 开发的主要烦恼之一是需要创建 ICommand 对象。除非你需要 CanExecute 功能,否则 ICommand 本质上只是一个普通方法的包装程序。而且,这些对象的创建经常会导致大量不必要的样板代码出现在视图模型中。更糟糕的是,数据模型要么暴露这个以 UI 为中心的概念,要么被隐藏在视图模型样式代理的后面。

Avalonia 提供了一个相当明显且简单的解决方案,用户控件上的命令可以直接与方法做数据绑定。如果需要的话,Avalonia 仍然支持 ICommands,但是大多数时候可以忽略 ICommands。

Avalonia 提供的另一个节省时间的方法是对Relative Sources 类的语法支持,使得语句不再那么冗长。比如“{Binding Text, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Border} AncestorLevel=1}}" 你可以写成"{Binding $parent.Text}”。

新预览架构

由于Avalonia 是跨平台的,同样地,它也需要跨平台的开发工具。这种工具一旦成为新的预览架构,那么,与.NET 使用的语言服务器协议一样,预览器将作为一个单独的进程运行。默认情况下,Avalonia 将提供一个已呈现的、通过TCP 传输的位图的IDE。为了使用这个新协议,AvaloniaVS 扩展已经做了相应更新,同时它现在也希望其他IDE 设计者尽快出现!

入门指南

如果你在Windows 上使用Visual Studio,那么针对Visual Studio 扩展版本的Avalonia 提供了必需的工具和项目模板。对于其他平台,你可以使用针对.NET Core 的Avalonia 模板

Avalonia 是在 MIT 的许可下发布的,它正在寻找能够为这个项目贡献时间的开发人员

查看英文原文: Avalonia Beta 1 Brings Many Improvements over WPF


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2018-03-20 19:002435
用户头像

发布了 21 篇内容, 共 14.0 次阅读, 收获喜欢 14 次。

关注

评论

发布
暂无评论
发现更多内容

Golang微服务框架kratos实现SignalR服务

golang SignalR Kratos

视觉套件专项活动!与飞桨技术专家一起提升技术实力,更多荣誉奖励等你领取

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

HBase Compaction 原理与线上调优实践

vivo互联网技术

HBase 调优参数 Minor Compaction Compaction策略 Major Compaction

快速玩转 Llama2!阿里云机器学习 PAI 推出最佳实践(二)——全参数微调训练

阿里云大数据AI技术

人工智能

Java基础 日期和时间

java易二三

程序员 计算机 java 编程

Golang微服务框架kratos实现SSE服务

golang websocket Kratos openai

Kratos 大乱炖 —— 整合其他Web框架:Gin、FastHttp、Hertz

golang gin Kratos

澜舟科技创始人兼CEO周明受邀出席“基础科学与人工智能论坛”

澜舟孟子开源社区

JAVA和JVM运行原理是什么?

java易二三

Java 编程 JVM 计算机 程序猿

Java一维数组是什么,怎么用?

java易二三

Java 编程 程序员 数组 计算机

澜舟科技CEO周明:不过度追求AGI,更看重大模型语言理解能力和应用落地性 | 1号位

澜舟孟子开源社区

Spring AOP 中,切点有多少种定义方式?

江南一点雨

Java spring

3D建模和3D渲染是吃CPU还是显卡?以及专业图形显卡和游戏显卡的区别

Finovy Cloud

3D

用故事给予企业全面预算管理一个灵魂

智达方通

全面预算管理 企业全面预算管理 预算场景

Golang微服务框架Kratos实现Thrift服务

初探webAssembly | 京东物流技术团队

京东科技开发者

前端 webassembly JavaScrip Blazor WebAssembly 企业号 7 月 PK 榜

印刷行业MES系统解决方案

万界星空科技

开源 MES系统 印刷

Java Web应用开发案例|使用AJAX实现省市区三级联动效果

TiAmo

Java Java web 开发实例

拥抱AIGC,他们有话说——百度李双龙:AIGC将赋能多个场域并惠及千行百业

百度Geek说

人工智能 百度 企业号 7 月 PK 榜 AICG

fastposter v2.16.0 让海报开发更简单

物有本末

图片处理 海报生成器 海报生成

数仓现网案例丨超大结果集接收异常

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

直播程序源码开发建设:洞察全局,数据统计与分析功能-山东布谷科技创作

山东布谷科技

软件开发 直播 源码搭建 程序源码 mac数据分析统计软件

Java程序员常用的日志框架有哪些?

java易二三

Java 编程 程序员 计算机

NineData已支持「最受欢迎数据库」PostgreSQL

NineData

postgresql 客户端 数据源 NineData 集成AI

开发语音APP源码的小知识

山东布谷网络科技

app源码

Golang微服务框架kratos实现Socket.IO服务

golang socket websocket Kratos

Golang微服务框架Kratos实现GraphQL服务

golang graphql Kratos

密集发布AI应用后,微软2023财报传递了什么信号|TE解读

TE智库

Avalonia Beta 1对WPF做了很多改进_.NET_Jonathan Allen_InfoQ精选文章