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

我從一萬二千年前開始寫XAML,這麼多年用了不少各式各樣的工具,如今留在電腦裏的、如今還在用的、在寫WPF時用的也就那麼幾個。這篇文章總結了這些工具,但願這些工具可讓WPF開發者事半功倍。html

1. Visual Studio

Visual Studio應該無需介紹,它是「面向任何開發者的同類最佳工具」。對WPF來講Visual Studio既是雞又是蛋,WPF開發者甚至有時會反編譯它的代碼參考參考,最近HandyControl也參考Visual Studio代碼增長了一個GlowWindow控件,這是個頗有趣又實用的控件。雖然有那麼幾年WPF沒什麼大的改進,但Visual Stuido依然爲XAML添加了不少使用的功能,我印象最深入的是如下幾個。git

應用程序時間線 探測器: 使用 「應用程序時間線」 探查器查找並修正 XAML 應用程序中應用程序交互的相關性能問題。 此工具經過顯示應用程序資源使用狀況的詳細視圖來幫助提升 XAML 應用程序的性能。 能夠分析應用程序準備 UI 框架(佈局和呈現)以及爲網絡和磁盤請求提供服務所花費的時間,以及在應用程序啓動、頁面加載以及調整窗口大小等應用場景中花費的時間。github

熱重載windows

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

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

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

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:oop

順便一提,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,惋惜那個軟件中止更新了。

下面是一張正在被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開發的基本調試工具

相關文章
相關標籤/搜索