写点什么

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:002124
用户头像

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

关注

评论

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

uni-app 模拟机调试环境搭建

编程三昧

uni-app 前端 开发工具 2月月更

学生管理系统架构

Geek_f3e842

「架构实战营」

IntelliJ IDEA Ultimate 配置 PHP 拦截器

HoneyMoose

IntelliJ IDEA 在校验 PHP Debug 配置的时候提示 Xdebug 扩展没有载入

HoneyMoose

与阿里云容器服务 ACK 发行版的深度对话第一弹:如何借助 sealer 实现快速构建 & 部署

阿里巴巴云原生

阿里云 容器 云原生 ACK Distro sealer

Metasploit 如何使用Exploits(漏洞)

喀拉峻

网络安全

APK修改神器:插桩工具 DexInjector

字节跳动终端技术

android 字节跳动 编译 APK 火山引擎MARS

如何在Linux解压缩(打开)Gz 文件?

Ethereal

docker的DNS配置说明

Geek_f24c45

Docker Kubernetes

架构训练营 第三模块作业-外包学生管理系统详细架构设计文档

Geek_16d2b8

架构训练营5期

剑指Offer——全方位、多角度掌握企业级开发框架J2EE

No Silver Bullet

jdk8 offer 2月月更 J2EE

外包学生管理系统架构设计文档

李大虾

#架构实战营 「架构实战营」

Logo小变动,心境大不同,SVG矢量动画格式网站Logo图片制作与实践教程(Python3)

刘悦的技术博客

前端 动画 SVG Python3 svg图

外包学生管理系统架构设计文档

风中奇缘

架构实战课 「架构实战营」

学生管理系统详细架构设计文档

晨亮

「架构实战营」

案例实践|Apache Pulsar 在移动云智能运维平台的实践

Apache Pulsar

开源 架构 云原生 Apache Pulsar Pulsar Summit Asia 2021

Go 语言快速入门指南:Go 模板介绍

宇宙之一粟

Go 语言 2月月更

基于CC2530设计的自动晾衣杆

DS小龙哥

2月月更

外包学生管理系统的架构文档

张逃逃

Linux系统数据备份不再头疼,Rdiff-backup来帮忙!

Ethereal

IntelliJ IDEA Ultimate 配置 PHP 拦截器中 Xdebug 扩展应该怎么填

HoneyMoose

如何在 Vue 中导出数据至 Excel 表格 - 卡拉云

蒋川

Vue Vue 3 vue admin

阿里巴巴的Java开发手册(黄山版)来了

Geek_rze78a

Java 阿里巴巴面经总结

无人驾驶全家桶:机场“人货场”的改造之路

脑极体

视频回顾|Pulsar Summit Asia 2021,案例、运维、生态干货不断

Apache Pulsar

开源 云原生 Apache Pulsar 社区 Pulsar Summit Asia 2021

IntelliJ IDEA 在校验 PHP Debug 配置的时候提示 URL 无法访问

HoneyMoose

前后端分离项目,如何解决跨域问题?

沉默王二

Java 前端 后端 跨域

Netty入门 -- 什么是Netty?

Bug终结者

Java Netty 网络

Linux基础操作:如何在 Linux 中复制文件夹?

Ethereal

Linux 示例中的 apt 命令大全,建议收藏!

Ethereal

安全领域权限模型

alibeer

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