[WPF]總結一些我在開發WPF時常用的工具

      網友投稿 1111 2025-04-02

      我從一萬二千年前開始寫XAML,這么多年用了很多各式各樣的工具,現在留在電腦里的、現在還在用的、在寫WPF時用的也就那么幾個。這篇文章總結了這些工具,希望這些工具可以讓WPF開發者事半功倍。

      1. Visual Studio#

      Visual Studio應該無需介紹,它是“面向任何開發者的同類最佳工具”。對WPF來說Visual Studio既是雞又是蛋,WPF開發者甚至有時會反編譯它的代碼參考參考,最近HandyControl也參考Visual Studio代碼增加了一個GlowWindow控件,這是個很有趣又實用的控件。雖然有那么幾年WPF沒什么大的改進,但Visual Stuido依然為XAML添加了很多使用的功能,我印象最深刻的是以下幾個。

      應用程序時間線 探測器:

      使用 “應用程序時間線” 探查器查找并修正 XAML 應用程序中應用程序交互的相關性能問題。 此工具通過顯示應用程序資源使用情況的詳細視圖來幫助提高 XAML 應用程序的性能。 可以分析應用程序準備 UI 框架(布局和呈現)以及為網絡和磁盤請求提供服務所花費的時間,以及在應用程序啟動、頁面加載以及調整窗口大小等應用場景中花費的時間。

      熱重載

      XAML熱重載允許您在應用程序運行時更改XAML代碼,從而幫助開發者構建WPF或UWP應用程序用戶界面。Visual Studio和Blend For Visual Studio都提供了熱重載。此功能使開發者能夠通過運行應用程序的數據上下文、身份驗證狀態和其他在設計時難以模擬的實際復雜性,以增量方式構建和測試XAML代碼。

      實時可視化樹和實時屬性資源管理器

      開發者可以使用“實時可視化樹”和“實時屬性資源管理器”實時地查看正在運行的XAML代碼。這些工具為開發者提供正在運行的XAML應用程序的UI元素的樹視圖,并向開發者顯示所選擇的任何UI元素的運行時屬性。

      另外,除了最新版的2019,我還保留著Visual Studio 2013,因為我常常需要抄10年前的Silverlight Toolkit的代碼。

      2. Blend for Visual Studio#

      Blend是專門針對XAML程序的設計軟件,經典版的Blend是獨立軟件,代碼編輯和調試功能比Visual Studio差很遠,現在它則是成為了Visual Studio的另一個模式,名字也變成Blend for Visual Studio。雖然微軟對Blend不怎么上心,但隨著Visual Studio越來越強大,Blend For Visual Studio也跟著得益。就算我可以手寫XAML,有很多事情還是需要在Blend里做,例如設計VisualState、創建動畫、將文字和形狀轉換為路徑、獲取控件的ControlTemplate等。

      安裝Visual Studio時默認不會安裝Blend for Visual Studio,需要選中它的CheckBox:

      順便一提,Visual Studio 2019不再提供BlendSDK,而這東西又基本是開發WPF必須的,所以需要自己安裝Microsoft.Xaml.Behaviors.Wpf nuget包。

      3. ILSpy#

      現在很多WPF項目都開源了,不過反編譯工具還是少不了的。比起dnSpy和JustDecompile,我更喜歡ILSpy,因為有很多BAML只有ILSpy能反編譯出來,例如System.Windows.Controls.Ribbon.dll(見下面截圖)。不過我也很喜歡JustDecompile的“創建項目”功能,它可以直接反編譯一個Dll并創建一個項目(如果不出錯的話)。順便一提我也很喜歡JetBrains的dotPeek,它也可以正常反編譯BAML,只是它每次啟動都很慢。

      4. Snoop#

      Snoop是一個開源的WPF UI探索工具,它可以瀏覽正在運行的WPF程序的可視樹、改變它的屬性、查看Triggers、設置斷點等。雖然現在Visual Studio也可以做到差不多的功能,但Snoop依然是我最喜歡使用的WPF工具之一。

      在以前我還喜歡用XAML Spy,可惜那個軟件停止更新了。

      [WPF]總結一些我在開發WPF時常用的工具

      下面是一張正在被Visual Studio調試的正在Spying Visual Studio 的Snoop的截圖(套娃使我快樂):

      5. DebugView#

      DebugView是一個很古老但依然實用的工具,它可以查看應用程序或驅動程序輸出的調試信息,而且不僅能查看本地機器,還可以查看遠程機器的調試信息。總而言之有了它可以方便查看程序的調試信息,對調試應用很有幫助。

      6. ReSharper#

      大名鼎鼎的ReSharper相信不用多介紹,不過要用上實在太花錢(授權和電腦配置)。除了可以強化C#代碼體驗,ReSharper對XAML也有很多增強功能,包括:

      XAML的錯誤提示

      增強的XAML智能感知

      導航和查找XAML元素

      XAML代碼重構

      更詳盡的功能請看 XAML Editing Tools - Features ReSharper

      7. Visual UI Automation Verify#

      從UISpy到Inspect到Visual UI Automation Verify,微軟提供了很多自動化測試的協助工具,現在對我來說最常用的應該是UI Automation Verify了吧,它就位于Windows SDK的安裝目錄里:X:\Windows Kits\10\bin\10.0.18362.0\x86\UIAVerify\VisualUIAVerifyNative.exe,它上一級目錄里還有inspect.exe(前提是需要先獲取Windows SDK)。如果自己開發的WPF程序使用了Microsoft UI Automation,這將是一個十分重要的工具。就算沒有,Visual UI Automation Verify也可以查看到幾乎所有Windows UI的信息。雖然它有點古老,但勝在又快又實用。

      8. ResXManager#

      ResXManager是用于管理resx資源文件的Visual Studio擴展,它提供了在Visual Studio中統一管理所有資源文件的用戶界面。小規模的程序用不上,但一旦資源和資源文件達到一定數量管理這些資源將十分痛苦,這時候ResXManager就必不可少。

      9.結語#

      這篇文章主要介紹我開發WPF時常用的工具,其它還有些VB.NET To C#的代碼轉換器、SVG TO XAML、和PNG TO ICO等在線工具,都是用到時再網上搜的。還有很多.NET的工具我沒有列出來,可以參考下面這篇文章:

      10個用于C#.NET開發的基本調試工具

      Windows WPF

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel表格如何備份
      下一篇:華為云文檔數據庫服務 dds(mongodb)新功能上線,限時免費公測中!
      相關文章
      久久亚洲一区二区| 亚洲国产精品第一区二区三区| 亚洲精品偷拍视频免费观看| 欧美色欧美亚洲另类二区| 77777午夜亚洲| 亚洲午夜成激人情在线影院| 亚洲人成人77777在线播放| 91亚洲一区二区在线观看不卡| 日韩亚洲AV无码一区二区不卡| 亚洲伦另类中文字幕| 亚洲四虎永久在线播放| 伊人久久综在合线亚洲2019| 自怕偷自怕亚洲精品| 亚洲成人在线免费观看| 亚洲va成无码人在线观看| 国产精品亚洲片在线va| 亚洲人成未满十八禁网站| 亚洲愉拍一区二区三区| 亚洲欧美不卡高清在线| 亚洲AV无码AV吞精久久| 五月婷婷亚洲综合| 亚洲中文字幕无码爆乳av中文| 亚洲综合无码精品一区二区三区| 中文字幕精品亚洲无线码二区| 亚洲乱亚洲乱妇无码麻豆| 亚洲AV永久精品爱情岛论坛| 亚洲毛片在线观看| 亚洲欧洲精品久久| 亚洲日本成本人观看| 国产亚洲男人的天堂在线观看| 亚洲色欲久久久久综合网| 亚洲尤码不卡AV麻豆| 亚洲av无码精品网站| 亚洲日韩乱码久久久久久| 亚洲大成色www永久网址| 亚洲av无码专区在线观看亚| 亚洲国产婷婷综合在线精品| 亚洲日韩中文无码久久| 亚洲一区二区三区高清| 亚洲三级视频在线观看| 亚洲av无码专区在线观看下载|