I started writing XAML 12, 000 years ago, and over the years I have used so many different tools that there are only a few left in my computer that are still in use and that I used to write WPF. This article summarizes these tools, which hopefully will make WPF developers more productive with less effort.

1. Visual Studio

Visual Studio should need no introduction, it is “the best tool in its class for any developer.” Visual Studio is both the chicken and the egg for WPF, and WPF developers even decomcompile its code references from time to time. HandyControl has also recently added a GlowWindow control from Visual Studio code, which is a very interesting and useful control. While WPF hasn’t improved much over the years, Visual Stuido still adds a lot of functionality to XAML. The most impressive ones are the following.

Application Timeline detector: Use the Application Timeline profiler to find and fix performance issues related to application interactions in XAML applications. This tool helps improve the performance of XAML applications by showing a detailed view of the application’s resource usage. You can analyze the time spent preparing the UI framework (layout and rendering) and servicing network and disk requests, as well as the time spent in application scenarios such as application startup, page loading, and window sizing.

Thermal overload

XAML hot overloading helps developers build WPF or UWP application user interfaces by allowing you to change XAML code while your application is running. Visual Studio and Blend For Visual Studio both provide hot overloading. This capability enables developers to incrementally build and test XAML code from the data context of the running application, authentication status, and other practical complexities that are difficult to simulate at design time.

Real-time visualization tree and real-time property explorer

Developers can view running XAML code in real time using the Real-time Visualization Tree and the Real-time Property Explorer. These tools provide the developer with a tree view of the UI elements of the running XAML application and show the developer the runtime properties of any SELECTED UI elements.

2. Blend for Visual Studio

Blend is designed specifically for XAML applications. The classic version of Blend is standalone software with far less code editing and debugging capabilities than Visual Studio. Now it is another mode of Visual Studio. The name also changed to Blend for Visual Studio. Although Microsoft is not a big fan of Blend, Blend For Visual Studio is benefiting as Visual Studio becomes more powerful. Even if I could write XAML by hand, there are a lot of things I still need to do in Blend, such as designing VisualState, creating animations, converting text and shapes to paths, getting control templates for controls, etc.

Blend for Visual Studio will not be installed by default when you install Visual Studio.

Incidentally, Visual Studio 2019 provides BlendSDK no longer, and this basic is necessary for the development of WPF, so the need to install Microsoft. The Xaml. Behaviors. The WPF nuget packages.

##3. ILSpy

Many WPF projects are now open source, but decompilation tools are still needed. I prefer ILSpy than dnSpy and JustDecompile, because there are many BAML can only ILSpy decompiling, such as System. Windows. Controls. Ribbon. DLL (see screenshot below). But I also like JustDecompile’s “Create project” feature, which decompiles a Dll directly and creates a project (if nothing goes wrong). By the way I also like JetBrains’ dotPeek, which also decompiles BAML properly, but it’s slow every time it starts.

4. Snoop

Snoop is an open source WPF UI exploration tool that allows you to browse the visual tree of a running WPF program, change its properties, view Triggers, set breakpoints, and more. Snoop is still one of my favorite WPF tools to use, although Visual Studio can do similar things now.

I used to like XAML Spy, but that software stopped updating.

Here is a screenshot of Visual Studio Snoop being debugged by Visual Studio (dolls make me happy) :

5. DebugView

DebugView is an old but still useful tool that can view debugging information output by an application or driver, not only on a local machine, but also on a remote machine. All in all, it is convenient to view the debugging information of the program, which is very helpful for debugging applications.

6. ReSharper

ReSharper probably doesn’t need much introduction, but it’s too expensive to use (licensing and computer configuration). In addition to enhancing the C# code experience, ReSharper also has a number of enhancements to XAML, including:

  • XAML error message
  • Enhanced XAML intellisense
  • Navigate and find XAML elements
  • XAML code refactoring

See XAML Editing Tools – Features ReSharper for more details

7. Visual UI Automation Verify

From UISpy to Inspect to Visual UI Automation Verify, Microsoft provides a variety of assistance tools for automated testing. The most common tool I use is UI Automation Verify, which is located in the Installation directory of the Windows SDK: X: \ Windows Kits 10 \ bin \ \ 10.0.18362.0 \ x86 \ UIAVerify \ VisualUIAVerifyNative exe, catalog at the next higher level and inspect it. Exe (premise is to first get Windows SDK). This is an important tool if you develop your OWN WPF application using Microsoft UI Automation. Even if not, Visual UI Automation Verify can view information about almost any Windows UI. Although it is a bit old, it is fast and practical.

8. ResXManager

ResXManager is a Visual Studio extension for managing RESX resource files that provides a unified user interface for managing all resource files in Visual Studio. Small programs are not useful, but ResXManager is essential once resources and resource files reach a certain number that can be painful to manage.

9. Conclusion

This article mainly introduces the tools I often use To develop WPF, other VB.NET To C# converter, SVG To XAML, PNG To ICO and other online tools, which are used To search online. There are many other.net tools that I have not listed, but you can refer to the following article:

10 basic debugging tools for C#.NET development