【译】Visual Studio 2019 中 WPF UWP 的 XAML 开发工具新特性
原文 | Dmitry
翻譯 | 鄭子銘
自Visual Studio 2019推出以來(lái),我們?yōu)槭褂肳PF或UWP桌面應(yīng)用程序的XAML開(kāi)發(fā)人員發(fā)布了許多新功能。在本周的 Visual Studio 2019 版本 16.4 和 16.5 Preview 1中,我們希望借此機(jī)會(huì)回顧一下全年的新變化。如果您錯(cuò)過(guò)了我們以前的版本,或者只是沒(méi)有機(jī)會(huì)趕上,那么此博客文章將是您可以看到我們?cè)谡麄€(gè)2019年所做的每項(xiàng)重大改進(jìn)的地方。
XAML實(shí)時(shí)調(diào)試工具:
XAML C# Edit & Continue 現(xiàn)在被稱為 XAML Hot Reload (v16.2):
現(xiàn)在將 WPF / UWP 的 XAML C# Edit & Continue 稱為 XAML Hot Reload,此新名稱旨在更好地與該功能的實(shí)際工作方式保持一致(因?yàn)檫M(jìn)行XAML編輯后無(wú)需暫停)并與 Xamarin.Forms 中的相似功能匹配。
XAML Hot Reload 可用/不可用 (v16.2):
應(yīng)用內(nèi)工具欄已更新,以指示 XAML Hot Reload 是否可用,并鏈接到相關(guān)文檔。在此改進(jìn)之前,如果不先嘗試使用該功能,客戶將無(wú)法知道 XAML Hot Reload 是否正在工作,這會(huì)引起混亂。
應(yīng)用內(nèi)工具欄現(xiàn)已主題化 (v16.2):
現(xiàn)在,根據(jù)Visual Studio選定的主題顏色設(shè)置應(yīng)用內(nèi)工具欄的樣式。
應(yīng)用內(nèi)工具欄現(xiàn)在的主題(v16.2)
應(yīng)用內(nèi)工具欄元素選擇行為更改:
我們更新了應(yīng)用程序內(nèi)工具欄功能“啟用選擇”的行為,用于在運(yùn)行的應(yīng)用程序中選擇元素。進(jìn)行此更改后,選擇器將在選擇第一個(gè)元素后停止選擇元素。這使其與類似的工具(例如F12瀏覽器工具)保持一致,并且基于客戶的反饋。
XAML Hot Reload 現(xiàn)在支持 x:bind(UWP)– v16.0:
XAML Hot Reload(以前稱為“ XAML Edit & Continue ”)現(xiàn)在支持編輯使用 x:bind 創(chuàng)建的數(shù)據(jù)綁定,以綁定包含公共屬性,元素名稱,索引屬性路徑(集合),附加屬性和強(qiáng)制轉(zhuǎn)換屬性的路徑。不支持其他更改。最低和最高版本針對(duì) Windows 10 SDK 版本1809(內(nèi)部版本10.0.17763)或更高版本的任何應(yīng)用程序均可使用此增強(qiáng)功能。
為 WPF 資源字典更改(v16.3)添加了 XAML Hot Reload 支持:
XAML Hot Reload 現(xiàn)在支持更新 WPF 資源字典以在應(yīng)用程序中進(jìn)行實(shí)時(shí)更新。以前,此功能僅適用于通用 Windows 平臺(tái)(UWP),但現(xiàn)在支持 WPF .NET Framework,WPF .NET Core 和 UWP 應(yīng)用程序。支持的操作包括添加新的“資源”部分定義以及添加,刪除和更新資源的新/現(xiàn)有部分。
實(shí)時(shí)可視化樹中的Just My XAML:
實(shí)時(shí)可視化樹是一項(xiàng)功能,當(dāng) UWP 和 WPF 開(kāi)發(fā)人員在調(diào)試模式下運(yùn)行其應(yīng)用程序時(shí),它們是可用的,并且是與 XAML Hot Reload 相關(guān)的實(shí)時(shí)編輯工具的一部分。以前,該功能會(huì)顯示附件中正在運(yùn)行的應(yīng)用程序的完整實(shí)時(shí)可視化樹,而無(wú)法通過(guò)過(guò)濾器僅查看您在應(yīng)用程序中編寫的 XAML。這帶來(lái)了非常嘈雜的體驗(yàn),并且根據(jù)客戶的反饋,我們添加了一個(gè)名為“ Just My XAML”的新默認(rèn)值,該默認(rèn)值將樹限制為僅在您的應(yīng)用程序中編寫的控件。雖然這是新的默認(rèn)設(shè)置,但仍然可以通過(guò)實(shí)時(shí)可視化樹本身內(nèi)的按鈕或通過(guò)新設(shè)置(位于:選項(xiàng)>調(diào)試>常規(guī)>啟用我的XAML)返回到以前的行為。
實(shí)時(shí)可視化樹中的Just My XAML
可移動(dòng)的應(yīng)用內(nèi)工具欄(v16.3):
應(yīng)用程序內(nèi)工具欄已得到增強(qiáng),可在正在運(yùn)行的 WPF / UWP 應(yīng)用程序中移動(dòng),從而使開(kāi)發(fā)人員能夠在應(yīng)用程序中向左或向右拖動(dòng)它以解除阻止應(yīng)用程序 UI。請(qǐng)注意,工具欄移動(dòng)到的位置不會(huì)在會(huì)話之間存儲(chǔ),并且在您的應(yīng)用重新啟動(dòng)時(shí)會(huì)返回到默認(rèn)位置。
可移動(dòng)的應(yīng)用內(nèi)工具欄(v16.3)
XAML綁定失敗面板(獨(dú)立的 VSIX 早期 alpha 預(yù)覽):
為了在開(kāi)發(fā)人員的應(yīng)用程序中發(fā)生數(shù)據(jù)綁定失敗時(shí)為開(kāi)發(fā)人員提供幫助,我們?cè)陂_(kāi)發(fā)中提供了一項(xiàng)新功能,該功能為 Visual Studio 帶來(lái)了專門的 XAML 綁定失敗面板。盡管此功能最終將對(duì)所有 XAML 開(kāi)發(fā)人員(WPF,UWP和Xamarin.Forms)都起作用,但新面板將使為那些構(gòu)建WPF應(yīng)用程序的客戶更容易發(fā)現(xiàn)綁定失敗。
XAML綁定失敗面板(獨(dú)立的 VSIX 早期 alpha 預(yù)覽)
此功能意味著開(kāi)發(fā)人員將不再需要使用輸出窗口來(lái)檢測(cè)綁定失敗并使新開(kāi)發(fā)者更容易發(fā)現(xiàn)它們。
此功能仍處于開(kāi)發(fā)的早期階段,Visual Studio 中未包含該功能,如果您希望立即開(kāi)始對(duì)其進(jìn)行測(cè)試,則可以通過(guò)下載我們的 alpha VSIX 來(lái)進(jìn)行。
XAML設(shè)計(jì)器
WPF Designer 現(xiàn)在完全適用于 WPF .NET Core 項(xiàng)目(v16.3):
現(xiàn)在,所有客戶都可以普遍使用 (GA)WPF .NET Core 應(yīng)用程序的 XAML 設(shè)計(jì)器,而無(wú)需預(yù)覽功能標(biāo)志。WPF .NET Core 應(yīng)用程序的 XAML 設(shè)計(jì)器在某些行為和功能上與 WPF .NET Framework Designer 略有不同,請(qǐng)注意,這是設(shè)計(jì)使然。鑒于兩者之間的差異,我們希望鼓勵(lì)客戶報(bào)告使用 Visual Studio 反饋功能可能遇到的任何問(wèn)題或限制。
WPF Designer 現(xiàn)在完全適用于 WPF .NET Core 項(xiàng)目(v16.3)
XAML 設(shè)計(jì)器的縮放/位置現(xiàn)在默認(rèn)為全部適合(v16.4):
根據(jù)客戶的反饋,我們重新評(píng)估了打開(kāi) XAML 窗口/頁(yè)面/控件/等時(shí)發(fā)生的默認(rèn) XAML 設(shè)計(jì)器縮放行為。以前的經(jīng)驗(yàn)豐富的用戶在 Visual Studio 會(huì)話中存儲(chǔ)了每個(gè)文件的縮放級(jí)別和位置,這在客戶經(jīng)過(guò)一段時(shí)間后返回文件時(shí)引起混亂。從此版本開(kāi)始,我們將僅在活動(dòng)會(huì)話的持續(xù)時(shí)間內(nèi)存儲(chǔ)縮放級(jí)別和位置,并在 Visual Studio 重新啟動(dòng)后恢復(fù)為“完全適合”默認(rèn)值。
創(chuàng)建數(shù)據(jù)綁定對(duì)話框(v16.4):
通過(guò) XAML 設(shè)計(jì)器和屬性瀏覽器的右鍵單擊,Visual Studio有一個(gè)可供 WPF .NET Framework 開(kāi)發(fā)人員使用的數(shù)據(jù)綁定對(duì)話框,并且以前也可供 UWP 開(kāi)發(fā)人員使用此對(duì)話框。在此版本中,我們將這種經(jīng)驗(yàn)帶回 UWP 開(kāi)發(fā)人員,并增加了對(duì) WPF .NET Core 應(yīng)用程序的支持。此功能仍在開(kāi)發(fā)中,并將在將來(lái)繼續(xù)改進(jìn),以恢復(fù)與 .NET Framework 對(duì)話框功能的功能奇偶性。
XAML設(shè)計(jì)器建議的操作(v16.5預(yù)覽):
在此版本中,我們提供了一個(gè)名為“建議的操作”的新預(yù)覽功能,當(dāng)在 XAML 設(shè)計(jì)器中選擇控件時(shí),可以輕松訪問(wèn)常用屬性。要使用此功能,請(qǐng)先通過(guò)“選項(xiàng)”>“預(yù)覽功能”>“ XAML建議的操作”將其啟用。啟用后,請(qǐng)單擊受支持的控件,然后使用燈泡展開(kāi)并與“建議操作”用戶界面進(jìn)行交互。在此版本中,受支持的控件包括:邊框,按鈕,畫布,復(fù)選框,組合框,網(wǎng)格,圖像,標(biāo)簽,列表框,ListView,StackP anel,TextBlock,TextBox。在預(yù)覽時(shí),此功能也僅適用于 WPF .NET Core 應(yīng)用程序,不支持?jǐn)U展性,也不具有完整的功能。
XAML設(shè)計(jì)器建議的操作(v16.5預(yù)覽)
(請(qǐng)注意,此功能正在積極開(kāi)發(fā)中,在最終發(fā)布之前可能會(huì)發(fā)生重大變化,因此您的反饋至關(guān)重要,我們希望通過(guò) Visual Studio 反饋工具來(lái)聽(tīng)取您的意見(jiàn)。)
XAML編輯器
XAML(v16.0)的智能感知支持:
IntelliCode 是一種AI輔助的 IntelliSense,適用于多種語(yǔ)言,可預(yù)測(cè)開(kāi)發(fā)人員最可能使用的正確 API,而不僅僅是字母順序的成員列表。IntelliCode 支持C#,C ++,XAML等語(yǔ)言。
#regions 智能感知(v16.4)的改進(jìn):
從 Visual Studio 2015 開(kāi)始,WPF 和 UWP XAML 開(kāi)發(fā)人員可以使用 #region 支持,Xamarin.Forms 最近也可以使用。在此版本中,我們已修復(fù)了 IntelliSense 錯(cuò)誤,此修復(fù)程序中 #regions 現(xiàn)在將在您開(kāi)始輸入<!時(shí)正確顯示。
XAML 智能感知(v16.4)中的代碼段:
增強(qiáng)了 IntelliSense 的功能,以支持顯示 XAML 代碼段,這對(duì)于內(nèi)置代碼段和您手動(dòng)添加的任何自定義代碼段均適用。從此版本開(kāi)始,我們還包括一些現(xiàn)成的 XAML 代碼片段:#region,Column 定義,Row 定義,Setter和Tag。
彈出 XAML 編輯器作為與設(shè)計(jì)器(v16.4)分開(kāi)的單獨(dú)窗口:
現(xiàn)在,可以使用 XAML 選項(xiàng)卡旁邊的新的 Popup XAML 按鈕輕松地將 XAML 設(shè)計(jì)器及其基礎(chǔ) XAML 編輯器拆分為單獨(dú)的窗口。單擊后,XAML 設(shè)計(jì)器將最小化其附加的 XAML 選項(xiàng)卡,并僅針對(duì) XAML 編輯器視圖彈出一個(gè)新窗口。您可以將此新窗口移動(dòng)到 Visual Studio 中的任何顯示或選項(xiàng)卡組。請(qǐng)注意,仍然可以展開(kāi)原始 XAML 視圖,但是無(wú)論同一個(gè)文件的所有 XAML 視圖將保持實(shí)時(shí)同步。
彈出 XAML 編輯器作為與設(shè)計(jì)器(v16.4)分開(kāi)的單獨(dú)窗口
顯示引用程序集的資源(v16.4):
XAML IntelliSense 已更新為支持顯示來(lái)自 WPF Framework 和 WPF .NET Core 項(xiàng)目的引用程序集中的 XAML 資源(當(dāng)源不可用時(shí))。
XAML Islands:
改進(jìn)的 XAML孤島 支持(v16.4):
我們?cè)黾恿藢?duì) Windows 窗體和 WPF .NET Core 3 應(yīng)用程序的 XAML孤島 場(chǎng)景的支持,從而使向這些應(yīng)用程序添加 UWP XAML 控件變得更加容易。通過(guò)這些改進(jìn),.NET Core 3 項(xiàng)目可以引用包含自定義 UWP XAML 控件的 UWP 項(xiàng)目。Windows 社區(qū)工具包 v6(Microsoft.Toolkit.Wpf.UI.XamlHost v6.0)中附帶的 WindowsXamlHost 控件可以使用這些自定義控件。您還可以使用 Windows 應(yīng)用程序打包項(xiàng)目為具有 Islands 的 .NET Core 3 生成 MSIX。要了解如何入門,請(qǐng)?jiān)L問(wèn)我們的文檔。
資源和模板
合并資源字典:
現(xiàn)在,可以使用解決方案資源管理器提供的新功能,輕松地將 UWP / WPF 項(xiàng)目中的現(xiàn)有資源詞典與任何有效的 XAML 文件合并。只需打開(kāi)要在其中添加 merge 語(yǔ)句的 XAML 文件,然后找到要合并的文件,然后在解決方案資源管理器中右鍵單擊該文件即可。在上下文菜單中,選擇“將資源字典合并到活動(dòng)窗口中”選項(xiàng),該選項(xiàng)將添加帶有路徑的正確合并 XAML。
合并資源字典
“編輯模板”現(xiàn)在可與第三方控件中的控件一起使用:
即使“編輯模板”現(xiàn)在不是源代碼解決方案的一部分,也可以創(chuàng)建控件模板的副本。進(jìn)行此更改后,“編輯模板”功能現(xiàn)在將可用,并且可以像現(xiàn)在可用源的第一方元素一樣使用。請(qǐng)注意,此功能適用于第三方控制庫(kù)和沒(méi)有源的第一方。
包裝和簽名
UWP應(yīng)用(v16.3)的簽名證書:
通過(guò)清單設(shè)計(jì)器恢復(fù)了創(chuàng)建和導(dǎo)入簽名證書文件(.pfx)的功能。我們還引入了通過(guò)打包向?qū)?chuàng)建和導(dǎo)入簽名證書的功能,以簡(jiǎn)化簽名過(guò)程。
009
UWP應(yīng)用(v16.3)的簽名證書
相關(guān)新聞
最近,還有其他與桌面開(kāi)發(fā)人員相關(guān)的公告,如果您錯(cuò)過(guò)了其中任何一項(xiàng),請(qǐng)參閱以下綜合列表:
Visual Studio App Center 現(xiàn)在支持 .NET 桌面應(yīng)用程序
包括 WinForms,WPF 和 UWP。這包括由 .NET Framework 或 .NET Core 支持的應(yīng)用程序,支持的功能包括部署,運(yùn)行狀況監(jiān)視(崩潰報(bào)告)和實(shí)時(shí)洞察(自定義遙測(cè))。有關(guān)詳細(xì)信息,請(qǐng)查看他們最近的博客文章。
Windows 已宣布 WinUI 3
同時(shí)發(fā)布了 Alpha 版和長(zhǎng)期路線圖。使用 WinUI 3,開(kāi)發(fā)人員將能夠使用現(xiàn)代 XAML 的功能來(lái)構(gòu)建由 .NET Core 或 C ++ 支持的桌面和 UWP 應(yīng)用程序。要了解所有詳細(xì)信息,請(qǐng)參閱其路線圖。
Windows UI 庫(kù) 2.3 現(xiàn)在可用
它將繼續(xù)為UWP開(kāi)發(fā)人員添加更多控件。有關(guān)所有詳細(xì)信息,請(qǐng)參見(jiàn)其發(fā)行說(shuō)明。
Ignite 2019 XAML 會(huì)議
現(xiàn)在可以免費(fèi)觀看點(diǎn)播視頻,如果您今年錯(cuò)過(guò)了 Ignite,那么值得一試。
總結(jié)
這些功能只是我們一直在努力的一部分,還有許多仍在開(kāi)發(fā)中,我們希望在準(zhǔn)備就緒時(shí)與您分享更多信息。
目前,由于上述許多項(xiàng)目都是根據(jù)客戶的意見(jiàn)創(chuàng)建的,因此請(qǐng)保持您的反饋意見(jiàn),因?yàn)槟囊庖?jiàn)是我們改進(jìn)Visual Studio的關(guān)鍵部分。
最后,您還可以在我們最新的 Visual Studio Toolbox 視頻中看到上述功能的演示:https://youtu.be/yI9OyA4ZM2E
原文:https://devblogs.microsoft.com/visualstudio/whats-new-in-xaml-developer-tools-in-visual-studio-2019-for-wpf-uwp/
總結(jié)
以上是生活随笔為你收集整理的【译】Visual Studio 2019 中 WPF UWP 的 XAML 开发工具新特性的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用.NET Core创建Windows
- 下一篇: 我在外包公司做增删改查有前途么?