不知不覺,Visual Studio 2019 已經出到 16.8 和 16.9 Preview 了。雖然每次更新都林林總總地一大堆新功能和改進,但關於 XAML 的內容老是,always,每次都只有一點點。其實 Xamarin 相關的內容有在使勁地更新,不過和我作的 WPF/UWP 關係又不大。總算是聚沙成塔,隨着 Visual Studio 持續更新,如今 XAML 編輯器的使用體驗已經比去年有了很大的改善。這篇文章就來總結下 Visual Studio 2019 發佈後 XAML 工具的各個主要改變。html
如今,可使用 XAML 選項卡旁邊新的"彈出 XAML"按鈕輕鬆地將 XAML 設計器及其基礎 XAML 編輯器拆分爲單獨的窗口。這時 XAML 設計器將把本來的 XAML 編輯器最小化,並在新的窗口打開一個 XAML 編輯器(這兩個 XAML 編輯器將保持實時同步)。雖然是一個很簡單的功能,但這個功能對同時使用兩個屏幕的開發者十分友好,由於如今終於能夠一個屏幕放設計視圖一個屏幕放 XAML 編輯器。真不能想象竟然等了這麼多年纔等來這個功能。app
IntelliSense 已通過加強,以支持顯示 XAML 代碼片斷,這將適用於內置代碼片斷以及你手動添加的任何自定義代碼片斷。這還挺好用的,一些很複雜的綁定如今也能夠經過定義代碼段來簡化了。編輯器
可並非全部 IntelliSense 的改進都是好事。寫了十幾年 XAML,個人手指都變成 XAML 的形狀了,如今忽然以爲很不適應。例以下面這個例子,我老是習慣盲打輸入 「'<'Gr空格」來建立一個 Grid
標籤,如今被插進來的推薦項打亂了個人習慣。總的來講改進程度和 C# 編輯器仍是差了一大截。ide
如今能夠看到 XAML 所設置的顏色了,沒必要再依賴第三方插件,這對常常須要設計 UI 的開發人員是一個很大的改進。工具
d: 前綴用於設置設計時的屬性值,它隻影響設計視圖,不會編譯到正在運行的應用中。在之前,d: 前綴只支持有限幾個功能,例如 d:DataContext
。如今全部內置控件的每個屬性均可以用 d: 前綴設置(未來還可能增長對第三方控件的支持)。插件
之前意義不明的「編輯並繼續」如今改名爲簡單直接的「熱重載」。熱重載、實時可視化樹和實時屬性資源管器是 WPF 開發者不會錯過的重要功能,Visual Studio 2019 一直有逐漸改善它們的體驗,如今這些功能已經支持 WPF、UWP、Xamarin、WInUI 3 等多個平臺。在 Visual Studio 2019 中比較顯著的改善是實時可視化樹中的「僅個人 XAML」。XAML 的可視化樹可能很複雜,很難定位到出問題的 XAML(一般來講,出問題的就是本身寫的 XAML)。如今能夠經過選項 > 調試 > 熱重載>僅在實時可視化樹啓用「僅限個人 XAML」
設置能夠選擇是否顯示完整的可視化樹。設計
另外如今 Visual Studio 能夠經過調試>附加到進程
調試其它程序的實時可視化樹和實時屬性資源管理器,不過我不記得這是否是 2019 纔有的新功能。3d
其它 UI 上的改善都很明顯,這裏不着重提出。調試
即便經驗豐富到頭髮掉光,XAML 的綁定仍是和有可能失敗。通常來講綁定失敗並不會報錯,因此開發者很難會注意到隱藏的綁定失敗,除非主動查看「輸出」窗口的內容。這種狀況開發者極可能會忽略這些失敗,直到更嚴重的災難發生。如今 Visual Studio 新增了 XAML 數據綁定故障檢測和診斷功能,若是在調試時遇到綁定失敗,In-app toolbar 會出一個紅色的圖標,點擊後能夠打開 「XAML 綁定失敗」窗口查看詳細信息。code
最後一個是 XAML 建議的操做窗口,在 XAML 設計器中選中某個元素後,使用此功能能夠輕鬆訪問這個元素的主要屬性。這個功能有點微妙,一來我還沒用慣,而來它支持的 UI 元素也很少(對 WPF 來講也就十幾個)因此它的可用性大打折扣。
Visual Studio 將會持續改善,從它路線圖來看,XAML 的相關內容真的處於「還沒有成功,仍需努力」的狀態,能夠期待未來 XAML 的開發體驗會更上一層樓(但是徹底沒提到可憐的 Blend)。
Visual Studio 2019 當前發行說明:
https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes
Visual Studio 2019 預覽發行說明:
https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes-preview
Visual Studio 2019 開發人員社區:
https://developercommunity.visualstudio.com/topics/visual+studio+2019.html
Visual Studio 發行節奏:
https://docs.microsoft.com/zh-cn/visualstudio/productinfo/release-rhythm
Visual Studio Roadmap:
https://docs.microsoft.com/zh-cn/visualstudio/productinfo/vs-roadmap
DevBlogs - Microsoft Developer Blogs:
https://devblogs.microsoft.com