可视化WPF控件中的对象属性

时间:2013-07-30 20:27:07

标签: c# .net wpf object properties

是否可以将对象(其属性及其值)可视化并将其打印出来(将其转储 - 类似于序列化)到WPF控件(如TreeView或PropertyGrid)以检查对象?

目标是显示任何仲裁对象的内容(不仅用于调试目的)。

进一步澄清:我没有寻找任何调试工具或方法来显示WPF Visual Tree。这个问题只与WPF部分有关 - > WPF只是显示对象转储的媒体,因为WPF和WinForms之间的控件可能不同。

对于嵌套对象实例,列表等,输出应该是分层的。

Object Visualization

6 个答案:

答案 0 :(得分:5)

我认为你应该看看Snoop

该程序将允许您导航任何正在运行的应用程序的WPF树。此工具不需要调试,并且该工具可能无法与调试一起使用。通常我会在非调试场景中使用它来查看我的WPF控件是如何实际布局的以及它们对各种属性的值是什么

答案 1 :(得分:2)

答案 2 :(得分:2)

你的意思是除了WPF Tree Visualizer之外?有Mole,它不再是免费的,但非常好。

编辑:

阅读您编辑过的问题。您明确命名为PropertyGrid,我认为您已经尝试了Extended WPF Toolkit's PropertyGrid

答案 3 :(得分:0)

所以你想要一个在运行时显示类的字段的控件。您可以通过查找“Property grid”找到大量关于此的文章。它不是你想要的,而是它的开始。您基本上通过对类的字段的反射进行迭代,并在ListView / TreeView中显示它们。但是,这是困难的部分开始,确定要显示哪些字段和隐藏哪些字段,处理非常不同的类型和基元,并允许使用类型转换编辑它们(如字符串到矩形,点,颜色等)是一个非常复杂的事情。 This control可能会给你一个很好的起点。

答案 4 :(得分:0)

现有各种控件可让您将属性视为属性网格。

http://www.codeproject.com/Articles/87715/Native-WPF-4-PropertyGrid

https://wpftoolkit.codeplex.com/wikipage?title=PropertyGrid

https://wpg.codeplex.com/

根据他们提供的复杂性,许可证和功能,您必须选择一个,所有这些都是免费的。

答案 5 :(得分:0)

我几个月来一直在寻找答案;由于线程所有权违规,Snoop,间谍和其他所有人都不适合我。

Microsoft有一个Windows工具,允许您选择任何正在运行的UI元素并查看Element的辅助功能数据:

inspect.exe

https://msdn.microsoft.com/en-us/library/dd318521(VS.85).aspx

它可以在Windows软件开发工具包中找到,需要下载和安装,位于:

C:\Program Files\x86\(win-version)\bin\(cpu-architecture)\inspect.exe