WinUI 3 (Windows App SDK 於 2021 年 11 月釋出了第一個正式版 v1.0.0 [1],最新版本是 v1.1.5 [2]。我的基於 WinUI 3 的個人專案 尋空 從年初開始開發 [3],完整經歷了 WinUI 3 的各個版本,見證了從 Bug 滿天飛到逐漸完善的全過程。
現在 WinUI 3 趨於穩定,處於可以一用的狀態,我也想把開發尋空過程中遇到的有趣的內容分享給大家,系列名就叫 WinUI 3 踩坑記 好了。個人水平有限,文章中難免會出現錯誤,請各位讀者批評指正。
WinUI 3 是 Windows App SDK 內的本機 UI 平臺元件,那這個 Windows App SDK 又是什麼東西,和 Windows SDK 有什麼關係,是不是改名部的新操作?
按照微軟的檔案所說,Windows App SDK 是一組新的開發人員元件和工具,它們代表著 Windows 應用開發平臺的下一步發展方向,Windows App SDK 不會代替 Windows SDK 或現有桌面 Windows 應用型別(比如 WinForm、WPF、Win32),而是使用一組通用 API 來補充這些現有工具和應用型別,開發人員可以在這些平臺上依賴這些 API 來執行操作 [4]。
微軟的檔案真不講人話, 簡單來說,WinUI 3 是 Windows 平臺最新一代本機應用開發框架,繼承了 UWP 的設計語言和 Win32 的執行方式,同時結合了兩者的優點,但是也帶來了只能跑在 Windows 10 1809 (17763) 及以上版本的限制。
以下內容總結自我個人的開發體驗,僅為一家之言。
安裝包體積大和互操作效能差僅對於 C# 而言,C++ 開發的 WinUI 3 應用沒有這些問題。
總的來說,WinUI 3 是一個未來可期的框架,既有顏值也有體驗(當然不是指開發體驗)。但是 WinUI 3 本身很難開發高效能的生產力軟體,這注定了它不太可能在大型商業軟體領域有所作為。而在更廣闊的娛樂或工具應用中,WinUI 3 可能會成為一部分新專案的選擇,比如 愛奇藝 Preview 。WinUI 3 的未來到底如何,我們拭目以待。
Windows 11 22H2 (22621) x64
, C# 11 (.NET 6)
, Windows App SDK v1.1.5
除了在 Visual Studio 中必裝的負載以外,推薦幾個提升效率的工具。
Microsoft UI Xaml
WinUI 控制元件樣式原始碼,這算是必看內容之一。開發中遇到的一些問題,比如 NavigationView 的背景色怎麼修改
, CheckBox 為什麼這麼寬
, 怎麼去掉 ListView 選中時的效果
這些問題都可以通過修改控制元件樣式來解決。
Windows Community Toolkit Sample App
社群工具箱,開發 WinUI 基本離不開這個東西。
WinUI Gallery
這是官方的控制元件展示,WinUI 的所有自帶的控制元件都能在裡面找到用法。有 WinUI 2 和 WinUI 3 兩個版本,內容差不多,我覺得 WinUI 2 版的比較好用。
Character Map UWP
字元對映表,一個檢視和搜尋字型字元的工具。開發過程中經常要查詢一些字型圖示,在這個應用中都能很方便地找到,還能直接複製生成的程式碼。