“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

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

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

关注

评论

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

准备好迁移上云了?请收下这份迁移步骤清单

龙智—DevSecOps解决方案

迁移计划 迁移上云计划 迁移上云步骤 上云步骤清单 云迁移策略

C++软件异常分析概述

dvlinker

windbg 软件异常 排查方法 Crashreport

RabbitMQ基础知识

龙空白白

RabbitMQ

学C++还是学Java?做软件研发还需掌握哪些知识和技能?

dvlinker

Java c++ 数据库 网络知识 汇编代码

SLSA: 成功SBOM的促进剂

安势信息

开源 开源软件供应链 软件物料清单 SBOM SLSA

Fabric.js 手动加粗文本iText

德育处主任

canvas FabricJS 6月月更

火线沙龙第26期-多云安全专场

腾源会

区块哈希竞猜游戏系统开发(dapp)

薇電13242772558

哈希值

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

阿里巴巴云原生

阿里云 架构 云原生 混部 Koordinator

Helix QAC更新至2022.1版本,将持续提供高标准合规覆盖率

龙智—DevSecOps解决方案

C语言 静态代码分析 Helix QAC 代码合规率 代码合规

微信视频号如何用 PC 电脑做直播?

boshi

直播 视频号

为什么你的数据图谱分析图上只显示一个值?

清林情报分析师

数据分析 可视化 知识图谱 三元组 情报分析

Flutter中的GetX状态管理用起来真的那么香吗?

岛上码农

flutter ios 移动端开发 安卓开发 6月月更

混沌工程,了解一下

华为云开发者联盟

云计算 测试 后端 混沌工程 华为云

活动报名 | MongoDB 5.0 时序存储特性介绍

MongoDB中文社区

mongodb

如何轻松快速构建区块链应用?技术大牛带来一线技术实践分享

腾源会

好用的人事管理软件有哪些?人事管理系统软件排名!

优秀

企业管理软件 OA管理系统

游戏资产复用:更快找到所需游戏资产的新方法

龙智—DevSecOps解决方案

游戏开发 游戏资产 艾尔登法环 游戏资产复用

如何使用物联网低代码平台进行流程管理?

AIRIOT

低代码 物联网,

JDBC 在性能测试中的应用

阿里巴巴云原生

阿里云 云原生 JDBC 压测

Python 设计模式:适配器模式

宇宙之一粟

设计模式 适配器模式 6月月更

八大误区,逐个击破(终篇):云难以扩展、定制性差,还会让管理员失去控制权?

龙智—DevSecOps解决方案

Atlassian 云版 版本选择 迁移上云

应用实践 | Apache Doris 整合 Iceberg + Flink CDC 构建实时湖仓一体的联邦查询分析架构

SelectDB

数据库 flink Doris iceberg

openGauss Developer Day 2022正式开启,与开发者共建开源数据库根社区

openGauss

如何通过7个步骤编写出色的在线用户手册

小炮

脚本之美│VBS 入门交互实战

Windows Server 6月月更 VBS 脚本之美

C/C++函数的调用约定详解

dvlinker

c++ 函数调用约定 __cdecl __stdcall __fastcall

RabbitMQ访问Web端口报错User can only log in via localhost

龙空白白

远程办公之:如何成为时间管理大师?| 社区征文

甜甜的白桃

初夏征文

直播分享| 腾讯云 MongoDB 智能诊断及性能优化实践

MongoDB中文社区

mongodb

在宇宙的眼眸下,如何正确地关心东数西算?

脑极体

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