.NET跨平臺UI框架Avalonia 11.1重磅釋出

Setli發表於2024-07-23

本篇為譯文

原文地址 https://avaloniaui.net/blog/avalonia-11-1-a-quantum-leap-in-cross-platform-ui-development

github地址 https://github.com/AvaloniaUI/Avalonia

史蒂文·柯克
釋出於 7 月 22 日

我們很高興地宣佈釋出 Avalonia 11.1,這是對我們喜愛的跨平臺 UI 框架的大規模更新。雖然從技術上講是一個點發布,但改進的數量和影響使其感覺更像是一次重大升級。此版本代表了我們的專業團隊和社群貢獻者無數個小時的辛勤工作,帶來了許多新功能、效能增強和全面改進。讓我們深入探討此版本中最令人興奮的方面,這些方面將使您能夠建立更令人印象深刻的跨平臺應用程式。

增強的跨平臺支援

Avalonia 一直以支援最廣泛的平臺而自豪,11.1 版本將其提升到了新的高度:

電視支援:Avalonia 11.1 支援 Samsung Tizen 和 Apple TV 平臺,顯著拓寬了其在智慧電視生態系統中的影響力。這一擴充套件為希望將其應用程式帶到大螢幕上的開發人員開闢了令人興奮的新可能性。藉助 Samsung Tizen 支援,您現在可以瞄準三星智慧電視和其他基於 Tizen 的裝置,從而進入不斷增長的細分市場。同時,新增 Apple TV 支援可讓您在 Apple 生態系統中建立令人驚歎的 UI 體驗。對於那些希望將應用程式擴充套件到客廳或建立獨特的基於電視的體驗的開發人員來說,這些新功能尤其令人興奮。

瀏覽器改進:Avalonia 的瀏覽器支援得到了顯著增強。實施了新的軟體渲染器,提供了更好的效能和跨瀏覽器的相容性。此外,該框架現在允許多個 AvaloniaView 例項,從而支援更復雜和動態的 Web 應用程式。這些改進極大地增強了在 Web 瀏覽器中執行的 Avalonia 應用程式的靈活性和效能,使其成為基於 Web 的專案的更可行的選擇。

Android 和 iOS 增強功能:對 Android 和 iOS 後端進行了各種改進,包括輸入處理、鍵盤互動和一般穩定性增強的修復。這些改進確保了移動平臺上的開發人員和終端使用者獲得更流暢的體驗。

效能最佳化

效能是我們最重要的功能之一,Avalonia 11.1 在這方面提供了重大改進:

Vulkan 後端:主要新增功能是新的 Vulkan 渲染後端。這種現代、低開銷的圖形 API 可以顯著提高效能,尤其是在原生支援它的平臺上。 Vulkan 提供對 GPU 的更直接控制,從而更好地利用圖形硬體。它可以提高渲染效能並可能降低功耗,這對於移動裝置和高效能桌面應用程式尤其有利。

渲染最佳化:對渲染管道進行了大量最佳化,包括對髒矩形處理、變換操作和一般繪圖效能的改進。這些增強功能可帶來更流暢的動畫、更快的 UI 更新以及對應用程式的整體響應更快的感覺。該團隊在減少不必要的重繪和最佳化渲染過程方面投入了大量精力,這在具有許多元素的複雜 UI 中應該特別明顯。

資源管理:更好地管理資源(包括字型和 XAML 資源)應該會減少記憶體使用量並縮短應用程式啟動時間。該框架現在採用更高效的快取機制和延遲載入策略,確保僅在需要時載入資源。這不僅可以縮短初始載入時間,還有助於減少應用程式的總體記憶體佔用。

使用者介面和使用者體驗改進

Avalonia 11.1 引入了多項功能,將幫助開發人員建立更加精美和使用者友好的介面:

HyperlinkBut​​ton 控制元件:新增了新的 HyperlinkBut​​ton 控制元件,使您可以更輕鬆地在 UI 中實現可點選連結。該控制元件具有適合超連結的​​內建樣式和行為,可以節省開發人員的時間並確保應用程式之間的一致性。

改進的工具提示系統:工具提示系統已透過新功能(如工具提示連結和新的 BetweenShowDelay 屬性)進行了徹底修改。工具提示連結允許建立更復雜的資訊層次結構,其中從一個元素移動到相關元素可以使相關資訊保持可見。 BetweenShowDelay 屬性可以對工具提示時間進行細粒度控制,從而允許更復雜的工具提示行為。

增強的 ScrollViewer:ScrollViewer 的改進包括更好地處理滑鼠滾輪的滾動捕捉,從而提供更流暢的滾動體驗。增強的 ScrollViewer 現在提供更自然的滾動感覺,適應不同的輸入方法,從觸控板到傳統的滑鼠滾輪。這會給您的應用程式帶來更加精緻的感覺,尤其是那些具有長滾動內容的應用程式。

開發人員生產力功能

Avalonia 11.1 包含多項旨在讓開發人員的生活更輕鬆、更高效的功能:

改進的開發工具:內建的開發人員工具已得到增強,具有焦點跟隨器和固定屬性的功能等功能。焦點跟隨器允許開發人員輕鬆實時跟蹤哪個元素具有焦點,這對於除錯複雜的輸入場景非常有用。在屬性檢查器中固定屬性的功能使您在與應用程式互動時可以更輕鬆地監視特定值。

XAML 改進:XAML 系統進行了許多改進,包括更好地處理泛型、更高效的編譯繫結以及針對 XAML 相關問題的增強診斷。改進的泛型支援允許更靈活和可重用的元件定義。編譯的繫結現在生成更最佳化的程式碼,從而實現更好的執行時效能。增強的診斷功能提供更清晰的錯誤訊息和警告,幫助開發人員在開發週期的早期發現並修復問題。

增強的繫結系統:資料繫結系統得到了改進,改進了 MultiBinding、更好地處理樣式設定器中的 ICommand 繫結以及更具反應性的 PropertyChanged 事件。 MultiBinding 現在可以更優雅地處理空值並提供更好的效能。樣式設定器中 ICommand 繫結的改進使得以更具宣告性的方式建立互動式 UI 元素變得更加容易。更具反應性的 PropertyChanged 事件可確保您的 UI 更可靠地與資料模型保持同步。

新轉換器型別:引入具有引數支援的 FuncValueConverter,為資料轉換場景提供了更大的靈活性。這種新的轉換器型別允許更簡潔和可讀的繫結表示式,特別是對於不需要完整轉換器類的簡單轉換。它對於快速原型設計或簡單的一次性轉換特別有用。

例如,Avalonia 現在有 ObjectConverters.Equal,其實現如下:

.NET跨平臺UI框架Avalonia 11.1重磅釋出

圖形和動畫增強

此版本中圖形功能得到了擴充套件。

新的畫素格式:新增了對 Rgb32 和 Bgr32 畫素格式的支援,為影像處理和操作提供了更多選項。這些新格式可以更有效地處理某些型別的影像,並可以提高影像密集型應用程式的效能。它們還提供與某些外部影像庫和檔案格式更好的相容性。

改進的畫筆處理:TileBrush 和 DrawingBrush 的增強功能為建立複雜的圖形效果提供了更強大、更靈活的選項。 TileBrush 現在可以更好地控制平鋪行為,包括改進對邊緣情況的處理。 DrawingBrush 已針對效能進行了最佳化,現在支援更復雜的繪圖操作。這些改進允許用更少的程式碼和更好的效能建立更復雜的視覺效果。

動畫改進:動畫系統得到了改進,包括修復 Animator 類以處理小於零的進度值。這確保了動畫更流暢、更可預測,特別是對於複雜序列或處理動態變化的值時。此外,動畫的整體效能也得到了改進,允許更復雜的動畫而不影響應用程式的響應能力。

可訪問性和國際化

Avalonia 不斷改進對建立無障礙應用程式的支援:

改進的螢幕閱讀器支援:包括 DataGrid 在內的各種控制元件的自動化屬性得到了增強,從而提高了螢幕閱讀器相容性。這包括更好的標籤、更具描述性的狀態更改以及改進的導航支援。這些增強功能使開發人員可以更輕鬆地建立可供視力障礙人士使用的應用程式,而無需進行大量額外編碼。

更好的輸入法編輯器 (IME) 支援:IME 處理得到了改進,特別有利於需要複雜輸入法的語言的使用者。這包括更好地處理合成事件、改進的游標定位以及更可靠的文字插入。這些增強功能使 Avalonia 應用程式對於中文、日語和韓語等語言的使用者來說更易於使用。

增強的本地化支援:新增了新的 API,可以更輕鬆地本地化內建控制元件和訊息。這包括改進用於管理本地化字串的資源系統以及更好地支援從右到左的語言。這些功能簡化了面向全球受眾的應用程式的建立。

針對移動裝置的增強功能

認識到移動開發日益增長的重要性,Avalonia 11.1 包括多項針對移動裝置的改進:

文字選擇手柄:在 TextBox 控制元件中實現觸控輸入的文字選擇手柄,在移動裝置上提供更原生的感覺。此功能模仿了使用者在移動平臺上期望的行為,使文字選擇和編輯更加直觀和使用者友好。

安全區域處理:改進了移動裝置上安全區域的處理,確保您的 UI 正確適應不同的裝置外形尺寸和方向。這對於帶有凹口或圓角的裝置尤其重要,可確保您的 UI 內容始終可見且不會被裝置功能遮擋。

移動手勢識別:手勢識別的增強功能(尤其是針對觸控裝置)可在移動平臺上提供更靈敏、更直觀的使用者體驗。這包括對捏合縮放、滑動手勢和多點觸控互動的改進。這些增強功能使開發人員能夠建立更自然的移動介面,而無需實現自定義手勢識別器。

新的視窗功能

對視窗管理進行了多項改進,增強了開發人員對其應用程式演示的靈活性和控制力:

多顯示器 DPI 縮放:更好地處理跨多個顯示器的 DPI 縮放,確保您的應用程式在所有顯示器上看起來清晰且尺寸正確。這在當今多樣化的計算環境中尤其重要,使用者通常擁有多個具有不同縮放係數的顯示器。 Avalonia 現在可以更優雅地處理這些場景,確保所有螢幕上的外觀一致。

視窗 Z 順序 API:用於獲取視窗 Z 順序的新 API 使開發人員能夠更好地控制視窗堆疊和管理。這對於管理多個視窗或建立自定義視窗管理行為的應用程式特別有用。它允許更復雜的 MDI 樣式介面或自定義視窗管理解決方案。

改進的視窗大小調整和定位:視窗大小調整、定位和狀態管理的各種增強功能提供了跨平臺更可靠和一致的行為。這包括更好地處理最大化和最小化狀態、更準確的初始定位以及改進的調整大小行為。這些改進可確保您的應用程式在不同作業系統和視窗管理器中的行為可預測。

檔案系統整合

Avalonia 11.1 改進了與本機檔案系統的整合,使建立與主機作業系統無縫協作的應用程式變得更加容易:

增強的檔案對話方塊:檔案選擇器對話方塊得到了改進,更好地支援檔案型別過濾和初始目錄選擇。這些增強功能可以更輕鬆地建立符合平臺期望的直觀檔案選擇體驗。改進的過濾選項允許更精細地控制使用者可以選擇的檔案型別。

檔案啟用支援:用於處理檔案啟用事件的新 API 使您可以更輕鬆地在應用程式中實現檔案關聯功能。這允許您的 Avalonia 應用程式在使用者從作業系統開啟檔案時做出響應,從而提供更加整合的體驗。它對於以文件為中心的應用程式或處理特定檔案型別的工具特別有用。

構建和部署改進

為了改進構建和部署過程,進行了一些更改,使建立和分發 Avalonia 應用程式變得更加容易:

NativeAOT 支援:改進了對 NativeAOT 編譯的支援,確保 Avalonia 應用程式可以充分利用這種效能增強技術。 NativeAOT 透過提前將應用程式編譯為本機程式碼,可以縮短啟動時間並減少記憶體使用量。這對於啟動效能至關重要的桌面應用程式尤其有利。

簡化資源處理:對程式集資源處理方式的更改應該會導致應用程式尺寸更小和載入時間更快。最佳化了資源系統,減少重複,提高載入效率。這可以導致具有許多嵌入式資源的大型應用程式的大小顯著減小。

增強的 XAML 編譯:XAML 編譯過程的改進提供了更好的效能和更可靠的錯誤報告。編譯器現在可以生成更最佳化的程式碼,並在檢測到問題時提供更清晰的錯誤訊息。這有助於在開發過程中儘早發現問題並提高執行時效能。

這些構建和部署增強應該會帶來更小、更快的應用程式。

結論

Avalonia 11.1 代表了該框架向前邁出的重要一步。改進的廣度和深度體現了我們團隊致力於提供頂級跨平臺 UI 開發體驗的承諾。從擴充套件的平臺支援和效能最佳化到增強的開發人員工具和改進的可訪問性,此版本幾乎涉及框架的每個方面。

我們鼓勵所有 Avalonia 開發人員升級到這個新版本,並探索它提供的豐富新功能和改進。您的反饋和貢獻對於塑造 Avalonia 的未來非常寶貴,因此請隨時與社群分享您的經驗和建議。

我們要向核心團隊和社群的所有貢獻者致以衷心的感謝,是他們使此版本成為可能。你們的辛勤工作、創造力和奉獻精神使 Avalonia 成為如此強大且深受喜愛的框架。

祝您開發愉快,我們迫不及待地想看到您使用 Avalonia 11.1 建立的令人驚歎的應用程式!

相關文章