【譯】Visual Studio 2019 中 WPF & UWP 的 XAML 開發工具新特性


原文 | Dmitry

翻譯 | 鄭子銘

自Visual Studio 2019推出以來,我們為使用WPF或UWP桌面應用程序的XAML開發人員發布了許多新功能。在本周的 Visual Studio 2019 版本 16.4 和 16.5 Preview 1中,我們希望借此機會回顧一下全年的新變化。如果您錯過了我們以前的版本,或者只是沒有機會趕上,那么此博客文章將是您可以看到我們在整個2019年所做的每項重大改進的地方。

XAML實時調試工具:

XAML C# Edit & Continue 現在被稱為 XAML Hot Reload (v16.2):

現在將 WPF / UWP 的 XAML C# Edit & Continue 稱為 XAML Hot Reload,此新名稱旨在更好地與該功能的實際工作方式保持一致(因為進行XAML編輯后無需暫停)並與 Xamarin.Forms 中的相似功能匹配。

XAML Hot Reload 可用/不可用 (v16.2):

應用內工具欄已更新,以指示 XAML Hot Reload 是否可用,並鏈接到相關文檔。在此改進之前,如果不先嘗試使用該功能,客戶將無法知道 XAML Hot Reload 是否正在工作,這會引起混亂。

應用內工具欄現已主題化 (v16.2):

現在,根據Visual Studio選定的主題顏色設置應用內工具欄的樣式。

應用內工具欄現在的主題(v16.2)

應用內工具欄元素選擇行為更改:

我們更新了應用程序內工具欄功能“啟用選擇”的行為,用於在運行的應用程序中選擇元素。進行此更改后,選擇器將在選擇第一個元素后停止選擇元素。這使其與類似的工具(例如F12瀏覽器工具)保持一致,並且基於客戶的反饋。

XAML Hot Reload 現在支持 x:bind(UWP)– v16.0:

XAML Hot Reload(以前稱為“ XAML Edit & Continue ”)現在支持編輯使用 x:bind 創建的數據綁定,以綁定包含公共屬性,元素名稱,索引屬性路徑(集合),附加屬性和強制轉換屬性的路徑。不支持其他更改。最低和最高版本針對 Windows 10 SDK 版本1809(內部版本10.0.17763)或更高版本的任何應用程序均可使用此增強功能。

為 WPF 資源字典更改(v16.3)添加了 XAML Hot Reload 支持:

XAML Hot Reload 現在支持更新 WPF 資源字典以在應用程序中進行實時更新。以前,此功能僅適用於通用 Windows 平台(UWP),但現在支持 WPF .NET Framework,WPF .NET Core 和 UWP 應用程序。支持的操作包括添加新的“資源”部分定義以及添加,刪除和更新資源的新/現有部分。

實時可視化樹中的Just My XAML:

實時可視化樹是一項功能,當 UWP 和 WPF 開發人員在調試模式下運行其應用程序時,它們是可用的,並且是與 XAML Hot Reload 相關的實時編輯工具的一部分。以前,該功能會顯示附件中正在運行的應用程序的完整實時可視化樹,而無法通過過濾器僅查看您在應用程序中編寫的 XAML。這帶來了非常嘈雜的體驗,並且根據客戶的反饋,我們添加了一個名為“ Just My XAML”的新默認值,該默認值將樹限制為僅在您的應用程序中編寫的控件。雖然這是新的默認設置,但仍然可以通過實時可視化樹本身內的按鈕或通過新設置(位於:選項>調試>常規>啟用我的XAML)返回到以前的行為。

實時可視化樹中的Just My XAML

可移動的應用內工具欄(v16.3):

應用程序內工具欄已得到增強,可在正在運行的 WPF / UWP 應用程序中移動,從而使開發人員能夠在應用程序中向左或向右拖動它以解除阻止應用程序 UI。請注意,工具欄移動到的位置不會在會話之間存儲,並且在您的應用重新啟動時會返回到默認位置。

可移動的應用內工具欄(v16.3)

XAML綁定失敗面板(獨立的 VSIX 早期 alpha 預覽):

為了在開發人員的應用程序中發生數據綁定失敗時為開發人員提供幫助,我們在開發中提供了一項新功能,該功能為 Visual Studio 帶來了專門的 XAML 綁定失敗面板。盡管此功能最終將對所有 XAML 開發人員(WPF,UWP和Xamarin.Forms)都起作用,但新面板將使為那些構建WPF應用程序的客戶更容易發現綁定失敗。

XAML綁定失敗面板(獨立的 VSIX 早期 alpha 預覽)

此功能意味着開發人員將不再需要使用輸出窗口來檢測綁定失敗並使新開發者更容易發現它們。

此功能仍處於開發的早期階段,Visual Studio 中未包含該功能,如果您希望立即開始對其進行測試,則可以通過下載我們的 alpha VSIX 來進行。

XAML設計器

WPF Designer 現在完全適用於 WPF .NET Core 項目(v16.3):

現在,所有客戶都可以普遍使用 (GA)WPF .NET Core 應用程序的 XAML 設計器,而無需預覽功能標志。WPF .NET Core 應用程序的 XAML 設計器在某些行為和功能上與 WPF .NET Framework Designer 略有不同,請注意,這是設計使然。鑒於兩者之間的差異,我們希望鼓勵客戶報告使用 Visual Studio 反饋功能可能遇到的任何問題或限制。

WPF Designer 現在完全適用於 WPF .NET Core 項目(v16.3)

XAML 設計器的縮放/位置現在默認為全部適合(v16.4):

根據客戶的反饋,我們重新評估了打開 XAML 窗口/頁面/控件/等時發生的默認 XAML 設計器縮放行為。以前的經驗豐富的用戶在 Visual Studio 會話中存儲了每個文件的縮放級別和位置,這在客戶經過一段時間后返回文件時引起混亂。從此版本開始,我們將僅在活動會話的持續時間內存儲縮放級別和位置,並在 Visual Studio 重新啟動后恢復為“完全適合”默認值。

創建數據綁定對話框(v16.4):

通過 XAML 設計器和屬性瀏覽器的右鍵單擊,Visual Studio有一個可供 WPF .NET Framework 開發人員使用的數據綁定對話框,並且以前也可供 UWP 開發人員使用此對話框。在此版本中,我們將這種經驗帶回 UWP 開發人員,並增加了對 WPF .NET Core 應用程序的支持。此功能仍在開發中,並將在將來繼續改進,以恢復與 .NET Framework 對話框功能的功能奇偶性。

XAML設計器建議的操作(v16.5預覽):

在此版本中,我們提供了一個名為“建議的操作”的新預覽功能,當在 XAML 設計器中選擇控件時,可以輕松訪問常用屬性。要使用此功能,請先通過“選項”>“預覽功能”>“ XAML建議的操作”將其啟用。啟用后,請單擊受支持的控件,然后使用燈泡展開並與“建議操作”用戶界面進行交互。在此版本中,受支持的控件包括:邊框,按鈕,畫布,復選框,組合框,網格,圖像,標簽,列表框,ListView,StackP anel,TextBlock,TextBox。在預覽時,此功能也僅適用於 WPF .NET Core 應用程序,不支持擴展性,也不具有完整的功能。

XAML設計器建議的操作(v16.5預覽)
(請注意,此功能正在積極開發中,在最終發布之前可能會發生重大變化,因此您的反饋至關重要,我們希望通過 Visual Studio 反饋工具來聽取您的意見。)

XAML編輯器

XAML(v16.0)的智能感知支持:

IntelliCode 是一種AI輔助的 IntelliSense,適用於多種語言,可預測開發人員最可能使用的正確 API,而不僅僅是字母順序的成員列表。IntelliCode 支持C#,C ++,XAML等語言。

#regions 智能感知(v16.4)的改進:

從 Visual Studio 2015 開始,WPF 和 UWP XAML 開發人員可以使用 #region 支持,Xamarin.Forms 最近也可以使用。在此版本中,我們已修復了 IntelliSense 錯誤,此修復程序中 #regions 現在將在您開始輸入<!時正確顯示。

XAML 智能感知(v16.4)中的代碼段:

增強了 IntelliSense 的功能,以支持顯示 XAML 代碼段,這對於內置代碼段和您手動添加的任何自定義代碼段均適用。從此版本開始,我們還包括一些現成的 XAML 代碼片段:#region,Column 定義,Row 定義,Setter和Tag。

彈出 XAML 編輯器作為與設計器(v16.4)分開的單獨窗口:

現在,可以使用 XAML 選項卡旁邊的新的 Popup XAML 按鈕輕松地將 XAML 設計器及其基礎 XAML 編輯器拆分為單獨的窗口。單擊后,XAML 設計器將最小化其附加的 XAML 選項卡,並僅針對 XAML 編輯器視圖彈出一個新窗口。您可以將此新窗口移動到 Visual Studio 中的任何顯示或選項卡組。請注意,仍然可以展開原始 XAML 視圖,但是無論同一個文件的所有 XAML 視圖將保持實時同步。

彈出 XAML 編輯器作為與設計器(v16.4)分開的單獨窗口

顯示引用程序集的資源(v16.4):

XAML IntelliSense 已更新為支持顯示來自 WPF Framework 和 WPF .NET Core 項目的引用程序集中的 XAML 資源(當源不可用時)。

XAML Islands:

改進的 XAML孤島 支持(v16.4):

我們增加了對 Windows 窗體和 WPF .NET Core 3 應用程序的 XAML孤島 場景的支持,從而使向這些應用程序添加 UWP XAML 控件變得更加容易。通過這些改進,.NET Core 3 項目可以引用包含自定義 UWP XAML 控件的 UWP 項目。Windows 社區工具包 v6(Microsoft.Toolkit.Wpf.UI.XamlHost v6.0)中附帶的 WindowsXamlHost 控件可以使用這些自定義控件。您還可以使用 Windows 應用程序打包項目為具有 Islands 的 .NET Core 3 生成 MSIX。要了解如何入門,請訪問我們的文檔

資源和模板

合並資源字典:

現在,可以使用解決方案資源管理器提供的新功能,輕松地將 UWP / WPF 項目中的現有資源詞典與任何有效的 XAML 文件合並。只需打開要在其中添加 merge 語句的 XAML 文件,然后找到要合並的文件,然后在解決方案資源管理器中右鍵單擊該文件即可。在上下文菜單中,選擇“將資源字典合並到活動窗口中”選項,該選項將添加帶有路徑的正確合並 XAML。

合並資源字典

“編輯模板”現在可與第三方控件中的控件一起使用:

即使“編輯模板”現在不是源代碼解決方案的一部分,也可以創建控件模板的副本。進行此更改后,“編輯模板”功能現在將可用,並且可以像現在可用源的第一方元素一樣使用。請注意,此功能適用於第三方控制庫和沒有源的第一方。

包裝和簽名

UWP應用(v16.3)的簽名證書:

通過清單設計器恢復了創建和導入簽名證書文件(.pfx)的功能。我們還引入了通過打包向導創建和導入簽名證書的功能,以簡化簽名過程。
009
UWP應用(v16.3)的簽名證書

相關新聞

最近,還有其他與桌面開發人員相關的公告,如果您錯過了其中任何一項,請參閱以下綜合列表:

Visual Studio App Center 現在支持 .NET 桌面應用程序

包括 WinForms,WPF 和 UWP。這包括由 .NET Framework 或 .NET Core 支持的應用程序,支持的功能包括部署,運行狀況監視(崩潰報告)和實時洞察(自定義遙測)。有關詳細信息,請查看他們最近的博客文章

Windows 已宣布 WinUI 3

同時發布了 Alpha 版和長期路線圖。使用 WinUI 3,開發人員將能夠使用現代 XAML 的功能來構建由 .NET Core 或 C ++ 支持的桌面和 UWP 應用程序。要了解所有詳細信息,請參閱其路線圖

Windows UI 庫 2.3 現在可用

它將繼續為UWP開發人員添加更多控件。有關所有詳細信息,請參見其發行說明

Ignite 2019 XAML 會議

現在可以免費觀看點播視頻,如果您今年錯過了 Ignite,那么值得一試。

總結

這些功能只是我們一直在努力的一部分,還有許多仍在開發中,我們希望在准備就緒時與您分享更多信息。

目前,由於上述許多項目都是根據客戶的意見創建的,因此請保持您的反饋意見,因為您的意見是我們改進Visual Studio的關鍵部分。

最后,您還可以在我們最新的 Visual Studio Toolbox 視頻中看到上述功能的演示。

原文:What’s new in XAML developer tools in Visual Studio 2019 for WPF & UWP

知識共享許可協議

本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。

歡迎轉載、使用、重新發布,但務必保留文章署名 鄭子銘 (包含鏈接: http://www.cnblogs.com/MingsonZheng/ ),不得用於商業目的,基於本文修改后的作品務必以相同的許可發布。

如有任何疑問,請與我聯系 (MingsonZheng@outlook.com) 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM