1. 程式人生 > >【廣州.NET社群推薦】【譯】Visual Studio 2019 中 WPF & UWP 的 XAML 開發工具新特性

【廣州.NET社群推薦】【譯】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

廣州.NET俱樂部

立足於廣州輻射大灣區的.NET技術俱樂部,旨在推動大灣區.NET技術的向前發展與交流。

QQ群:651477282

歡迎各位技術專家以及熱愛分享技術文章的同學聯絡我們 [email protected]

原文版權歸作者和部落格園共有,轉載請聯絡原文作者。

原文連結:【譯】Visual Studio 2019 中 WPF & UWP 的 XAML 開發工具新特性