Avalonia Beta 1對WPF做了很多改進

\

看新聞很累?看技術新聞更累?試試下載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)關注我們。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/283826.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/283826.shtml
英文地址,請注明出處:http://en.pswp.cn/news/283826.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

WebView2 通過 PuppeteerSharp 實現RPA獲取壁紙 (案例版)

此案例是《.Net WebView2 項目,實現 嵌入 WEB 頁面 Chromium內核》文的續集。主要是針對WebView2的一些微軟自己封裝的不熟悉的API,有一些人已經對 PuppeteerSharp很熟悉了,那么,直接用 PuppeteerSharp的話,那就降低了…

[轉]2022 年 Java 行業分析報告

你好,我是看山。 前段時間介紹了從 Java8 到 Java17 每個版本比較有特點的新特性(收錄在 從小工到專家的 Java 進階之旅 專欄),今天看到 JRebel 發布了《2022 年 Java 發展趨勢和分析》,于是借此分析一下 Java 行業的現…

Mysql 數據庫學習筆記03 存儲過程

一、存儲過程:如下 通過 out 、inout 將結果輸出,可以輸出多個值。 * 調用存儲過程: call 存儲名稱(參數1,參數2,...); 如指定參數不符合要求,返回 Empty Set * 查詢存儲過…

android 代碼混淆模板

#指定代碼的壓縮級別 -optimizationpasses 5 #包明不混合大小寫 -dontusemixedcaseclassnames #不去忽略非公共的庫類 -dontskipnonpubliclibraryclasses#優化 不優化輸入的類文件 -dontoptimize#預校驗 -dontpreverify#混淆時是否記錄日志 -verbose# 混淆時所采用的算法 -opt…

vue+vuecli+webapck2實現多頁面應用

準備工作 在本地用vue-cli新建一個項目,首先安裝vue-cil,命令: npm install -g vue-cli 新建一個vue項目,創建一個基于"webpack"的項目,項目名為vuedemo: vue init webpack vuedemo 這里有一個地方需要改一下&#xff0…

一文把Docker、Kubernetes搞懂:什么是Docker?什么是Kubernetes?Docker和Kubernetes有什么關系和區別?通俗解釋Docker、Kubernetes

一、Docker解決的問題 1、統一標準 ● 應用構建 ○ Java、C、JavaScript——編程各異 ○ 打成軟件包 ○ .exe(類似Windows,最終也只是生產exe執行) ○ 使用docker build … 打包成 鏡像——這就類似于exe ● 應用分享 ○ 所有軟件的鏡像放到一…

Python-高階函數

#encodingUTF-8import sys # 高階函數高階函數實際上是參數可接受函數的函數即參數為函數的函數 # map()map()接收兩個參數,一個是函數,一個是序列,將此函數分別作用于該序列的每個元素,返回處理后的序列結果def c2(x): return x…

程序員雙手飛快敲鍵盤的時候是在敲代碼嗎?

當你看到一個程序員的兩只手在鍵盤上上下翻飛,行云流水的時候,多半不是在敲擊代碼大概率是在跟產品經理撕逼討論需求另一種可能就是在跟測試打口水仗10%幾率是在論壇碼字摸魚或者和人家開噴了。1%幾率是在跟MM聊天可以手速飛快而不需要停下思考的代碼&am…

erlang-17版本的編碼方式

最近在騰訊云租了個云主機:鏡像提供方:選擇服務市場 :多語言環境(Centos 7.0 64位 Python Perl Ruby Erlang ) 他們集成軟件安裝的是erlang-17版本,我之前用erlang-16版本一直沒遇到什么問題; 這…

幾分鐘上線一個網站 真是神器

1、ToolJet 簡介 ToolJet 是一個開源的低代碼框架,可以快速構建和部署內部工具,而無需工程團隊付出太多努力。您可以連接到您的數據源,例如數據庫(如 PostgreSQL、MongoDB、Elasticsearch 等)、API 端點(To…

翻譯:用戶變量(User-Defined Variable)(已提交到MariaDB官方手冊)

本文為mariadb官方手冊:User-Defined Variables的譯文。 原文:https://mariadb.com/kb/en/user-defined-variables/我提交到MariaDB官方手冊的譯文:https://mariadb.com/kb/zh-cn/user-defined-variables/ 用戶變量是指由用戶創建&#xff0…

移植Python3到TQ2440(一)

平臺 硬件:TQ2440 64MB內存 256MB NandFlashbootloader:U-Boot 2015.04kernel:linux-4.9Python: Python-3.6.0工具鏈:arm-none-linux-gnueabi-gcc 4.8.3概述 現在樹莓派很火,在樹莓派上面用戶可以通過Python來控制板…

WinForm(六)組合布局屬性

WinForm是基于控件的,不像codemark的架構,可以非常靈活的用mark來布局,它只能用控件布局屬性和窗口控件來完成對UI的布局。容器控件有一組控件叫容器控件,對布局特別有作用,它們分別是:TableLayoutPanel&am…

Qt 網絡編程

QT 網絡編程 TCP 編程 模塊引入 QT network 頭文件 #include <QTcpServer> // TCP服務器端使用 #include <QTcpSocket> // TCP服務器和客戶端都使用 編程流程 服務端 1&#xff09;實例化 QTcpServer 對象 -----------------------------> socket 2&#x…

HDU 5037 Frog(2014年北京網絡賽 F 貪心)

開始就覺得有思路&#xff0c;結果越敲越麻煩。。。   題意很簡單&#xff0c;就是說一個青蛙從0點跳到m點&#xff0c;最多可以跳l的長度&#xff0c;原有石頭n個&#xff08;都僅表示一個點&#xff09;。但是可能跳不過去&#xff0c;所以你是上帝&#xff0c;可以隨便在哪…

Kafka高性能高吞吐的原因總結

1、磁盤順序讀寫 保證了消息的堆積 順序讀寫 磁盤會預讀,預讀即在讀取的起始地址連續讀取多個頁面&#xff0c;主要時間花費在了傳輸時間,而這個時間兩種讀寫可以認為是一樣的。 隨機讀寫 因為數據沒有在一起&#xff0c;將預讀浪費掉了&#xff0c;需要多次尋道和旋…

日利率

2019獨角獸企業重金招聘Python工程師標準>>> 利率計算 轉載于:https://my.oschina.net/u/3342652/blog/1649028

linux下使用tar命令

解壓語法&#xff1a;tar [主選項輔選項] 文件或者目錄 使用該命令時&#xff0c;主選項是必須要有的&#xff0c;它告訴tar要做什么事情&#xff0c;輔選項是輔助使用的&#xff0c;可以選用。主選項&#xff1a;c 創建新的檔案文件。如果用戶想備份一個目錄或是一些文件&…

Kafka 安裝詳解

注意&#xff1a;確保有JDK1.8版本及以上 官方文檔&#xff1a;https://kafka.apache.org/quickstart 清華鏡像下載&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/ 首先下載安裝包&#xff0c;在linux及Windows都可以使用。 1. Centos 安裝部署 1.1 下載 將下…

【Maui正式版】創建可跨平臺的Maui程序,以及有關依賴注入、MVVM雙向綁定的實現和演示...

前言&#xff1a;Maui終于在2022年8月9日推送出來了。今兒就迫不及待來把玩一下先。A、我本地已有VS2022&#xff0c;不過版本比較老&#xff0c;此處選擇更新。工具 -> 獲取功能和更新里面&#xff0c;可以獲取到新版本更新。B、最新版本是17.3.0&#xff0c;我本地只有17.…