1. 程式人生 > >總結 Visual Studio 2019 釋出以來 XAML 工具的改進

總結 Visual Studio 2019 釋出以來 XAML 工具的改進

不知不覺,Visual Studio 2019 已經出到 16.8 和 16.9 Preview 了。雖然每次更新都林林總總地一大堆新功能和改進,但關於 XAML 的內容總是,always,每次都只有一點點。其實 Xamarin 相關的內容有在使勁地更新,不過和我做的 WPF/UWP 關係又不大。總算是積少成多,隨著 Visual Studio 持續更新,現在 XAML 編輯器的使用體驗已經比去年有了很大的改善。這篇文章就來總結下 Visual Studio 2019 釋出後 XAML 工具的各個主要改變。 ## 1.彈出 XAML 編輯器作為設計器的單獨視窗 ![](https://img2020.cnblogs.com/blog/38937/202012/38937-20201211112043461-522679665.png) 現在,可以使用 XAML 選項卡旁邊新的"彈出 XAML"按鈕輕鬆地將 XAML 設計器及其基礎 XAML 編輯器拆分為單獨的視窗。這時 XAML 設計器將把原本的 XAML 編輯器最小化,並在新的視窗開啟一個 XAML 編輯器(這兩個 XAML 編輯器將保持實時同步)。雖然是一個很簡單的功能,但這個功能對同時使用兩個螢幕的開發者十分友好,因為現在終於可以一個螢幕放設計檢視一個螢幕放 XAML 編輯器。真不能想象居然等了這麼多年才等來這個功能。 ## 2. XAML IntelliSense 改進,以及支援程式碼段 IntelliSense 已經過增強,以支援顯示 XAML 程式碼片段,這將適用於內建程式碼片段以及你手動新增的任何自定義程式碼片段。這還挺好用的,一些很複雜的繫結現在也可以通過定義程式碼段來簡化了。 ![](https://img2020.cnblogs.com/blog/38937/202012/38937-20201211112106439-697849605.png) 可並不是所有 IntelliSense 的改進都是好事。寫了十幾年 XAML,我的手指都變成 XAML 的形狀了,現在突然覺得很不適應。例如下面這個例子,我總是習慣盲打輸入 “ 除錯 > 熱過載>僅在實時視覺化樹啟用“僅限我的 XAML”`設定可以選擇是否顯示完整的視覺化樹。 ![](https://img2020.cnblogs.com/blog/38937/202012/38937-20201216091833286-1319314664.png) 另外現在 Visual Studio 可以通過`除錯>附加到程序`除錯其它程式的實時視覺化樹和實時屬性資源管理器,不過我不記得這是不是 2019 才有的新功能。 其它 UI 上的改善都很明顯,這裡不著重提出。 ## 6 .XAML 繫結失敗診斷 即使經驗豐富到頭髮掉光,XAML 的繫結還是和有可能失敗。一般來說繫結失敗並不會報錯,所以開發者很難會注意到隱藏的繫結失敗,除非主動檢視“輸出”視窗的內容。這種情況開發者很可能會忽略這些失敗,直到更嚴重的災難發生。現在 Visual Studio 新增了 XAML 資料繫結故障檢測和診斷功能,如果在除錯時遇到繫結失敗,In-app toolbar 會出一個紅色的圖示,點選後可以開啟 “XAML 繫結失敗”視窗檢視詳細資訊。 ![](https://img2020.cnblogs.com/blog/38937/202012/38937-20201211112213675-1509358763.png) ![](https://img2020.cnblogs.com/blog/38937/202012/38937-20201211112220045-1219145991.png) ## 7. XAML 設計器建議的操作 最後一個是 XAML 建議的操作視窗,在 XAML 設計器中選中某個元素後,使用此功能可以輕鬆訪問這個元素的主要屬性。這個功能有點微妙,一來我還沒用慣,而來它支援的 UI 元素也不多(對 WPF 來說也就十幾個)所以它的可用性大打折扣。 ![](https://img2020.cnblogs.com/blog/38937/202012/38937-20201211112235898-650260495.png) ## 8. 最後 ![](https://img2020.cnblogs.com/blog/38937/202012/38937-20201211112250154-1593184224.png) Visual Studio 將會持續改善,從它路線圖來看,XAML 的相關內容真的處於“尚未成功,仍需努力”的狀態,可以期待將來 XAML 的開發體驗會更上一層樓(可是完全沒提到可憐的 Blend)。 ## 9. 參考 Visual Studio 2019 當前發行說明: [https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes](https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes?WT.mc_id=WD-MVP-5003763) Visual Studio 2019 預覽發行說明: [https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes-preview](https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes-preview?WT.mc_id=WD-MVP-5003763) Visual Studio 2019 開發人員社群: [https://developercommunity.visualstudio.com/topics/visual+studio+2019.html](https://developercommunity.visualstudio.com/topics/visual+studio+2019.html?sort=newest&topics=visual%20studio%202019&WT.mc_id=WD-MVP-5003763) Visual Studio 發行節奏: [https://docs.microsoft.com/zh-cn/visualstudio/productinfo/release-rhythm](https://docs.microsoft.com/zh-cn/visualstudio/productinfo/release-rhythm?WT.mc_id=WD-MVP-5003763) Visual Studio Roadmap: [https://docs.microsoft.com/zh-cn/visualstudio/productinfo/vs-roadmap](https://docs.microsoft.com/zh-cn/visualstudio/productinfo/vs-roadmap?WT.mc_id=WD-MVP-5003763) DevBlogs - Microsoft Developer Blogs: [https://devblogs.microsoft.com](https://devblogs.microsoft.com/?WT.mc_id=WD-MVP-5003763)