博客
关于我
[WPF]总结一些我在开发WPF时常用的工具
阅读量:433 次
发布时间:2019-03-06

本文共 1830 字,大约阅读时间需要 6 分钟。

WPF 开发工具全解析:助力高效编码

作为一名从一万二千年前就开始写XAML的开发者,我亲历了无数工具的迭代,见证了它们如何帮助我更高效地进行WPF开发。以下是一些我常用的工具,希望能为WPF开发者提供实用的参考。

1. Visual Studio

Visual Studio 是每个开发者的必备工具,尤其是对于WPF开发者而言,它是完美的集成环境。尽管WPF在过去几年中没有大规模改进,但Visual Studio依然是WPF开发者的首选,因为它提供了丰富的功能和支持。以下是Visual Studio的一些实用功能:

  • 应用程序时间线探查器:帮助开发者分析XAML应用程序的性能问题,尤其是在UI框架布局、网络和磁盘请求等方面的性能瓶颈。
  • XAML热重载:允许开发者在应用程序运行时动态修改XAML代码,特别是在用户界面设计和复杂场景模拟方面非常实用。
  • 实时可视化树和属性资源管理器:实时查看正在运行的XAML代码的UI元素树和属性,帮助开发者更好地理解和调试代码。

此外,Visual Studio 2013 的支持对于回顾Silverlight Toolkit的代码非常有帮助,尽管现在已经过时,但它依然是不可或缺的开发环境。

2. Blend for Visual Studio

Blend 是专注于XAML设计的工具,虽然其独立版本的功能不及Visual Studio强大,但它在特定场景下依然不可或缺。Blend for Visual Studio 已经成为Visual Studio的一部分,通过插件形式提供更强大的XAML设计能力。以下是Blend的优势:

  • 设计VisualState和动画:对于WPF应用程序的交互体验至关重要。
  • 将文字和形状转换为路径:生成复杂的XAML形状。
  • 获取控件的ControlTemplate:了解和修改控件模板。

安装Visual Studio时,请确保选择安装Blend for Visual Studio选项,尤其是在需要反编译Blend SDK时。

3. ILSpy

ILSpy 是一款优秀的反编译工具,尤其适合处理BAML文件。对于那些源代码不可用的第三方控件库(如System.Windows.Controls.Ribbon.dll),ILSpy是唯一的选择。它比dnSpy和JustDecompile更高效,尤其是在反编译复杂库时表现优异。

4. Snoop

Snoop 是一个开源的WPF UI探索工具,功能强大且免费。它允许开发者浏览正在运行的WPF程序的可视树,修改属性,设置断点等。尽管Visual Studio现在也有类似功能,但Snoop依然是我最推荐的WPF工具之一。它还支持查看Triggers,帮助开发者理解控件行为。

5. DebugView

DebugView 是一个古老但依然实用的调试工具。它能够查看应用程序或驱动程序的输出日志,无论是本地机器还是远程机器。这对于调试复杂的应用程序非常有帮助,特别是在处理高级性能问题时。

6. ReSharper

ReSharper 是一款功能强大的C#开发工具,也对XAML提供了丰富的支持。它能够在XAML代码中提供智能感知提示,帮助开发者快速定位和修复错误。ReSharper 的XAML支持包括代码重构、导航和查找功能,极大地提高了开发效率。

7. Visual UI Automation Verify

Visual UI Automation Verify 是微软提供的一个自动化测试工具,属于Windows SDK的一部分。它能够帮助开发者测试UI自动化功能,尤其是在使用Microsoft UI Automation时非常实用。尽管它可能有些过时,但它依然是测试WPF UI组件的快速方式。

8. ResXManager

ResXManager 是一个Visual Studio扩展,用于管理resx资源文件。对于需要管理大量资源文件的项目来说,它是一个必不可少的工具。它提供了统一的资源管理界面,简化了资源文件的添加、删除和管理过程。

结语

这些工具为我提供了开发WPF应用程序的强大支持。虽然我也使用了一些在线工具(如VB.NET到C#的代码转换器、SVG到XAML转换器等),但它们通常是在需要时网上搜索和使用的。如果你想了解更多关于.NET开发的工具,可以参考相关文章。希望这些工具能为你的WPF开发之路提供帮助。

转载地址:http://otyuz.baihongyu.com/

你可能感兴趣的文章
Python3组播通信编程实现教程(发送者+接收者)
查看>>
Python3编写网络爬虫10-数据存储方式三-CSV文件存储
查看>>
python3读取redis返回数据带有'b'的问题
查看>>
Python3连接MySQL
查看>>
Python关于isinstance函数的解析 | 附Demo(全)
查看>>
Python3:setup.py:完成所有任务的PIP安装(Build_ext+Install)
查看>>
python4.0 gil_Python 并发编程系列--1、浅谈GIL历史及对多线程的影响
查看>>
python60行绘图程序_天底下最简单的QT画图板,就一个类,60行代码
查看>>
Python: AES加密与解密
查看>>
Python: Range() 最大尺寸;动态的还是静态的?
查看>>
Python: Windows下用 multiprocessing 的深坑
查看>>
python:Could not find platform independent libraries <prefix>解决方法
查看>>
Python:datetime tzinfo 时区名称文档
查看>>
Python:deepcopy(list) vs new_list = old_list[:]
查看>>
Python:Google API - 从消息中获取 mimeTypes
查看>>
Python:Google API - 从消息中获取 mimeTypes
查看>>
Python:subprocess.call,stdout to file,stderr to file,在屏幕上实时显示stderr
查看>>
Python:TypeError:无法连接“str“和“int“对象
查看>>
Python:XPath 在 ElementTree 中不可用
查看>>
Python:从 FTP 服务器下载文件
查看>>