Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WPF控件中可视化对象属性_C#_.net_Wpf_Object_Properties - Fatal编程技术网

C# 在WPF控件中可视化对象属性

C# 在WPF控件中可视化对象属性,c#,.net,wpf,object,properties,C#,.net,Wpf,Object,Properties,是否可以可视化对象(其属性及其值)并将其打印(转储-类似于序列化)到WPF控件(如TreeView或PropertyGrid)以检查对象 目标是显示任意对象的内容(不仅仅是为了调试目的) 进一步澄清:我不寻找任何调试工具或方法来显示WPF可视化树。这个问题与WPF只有部分关系->WPF只是显示对象转储的媒体,因为WPF和WinForms之间的控件可能不同 对于嵌套对象实例、列表等,输出应该是分层的 我相信你要找的是我想你应该看看史努比 此程序将允许您导航任何正在运行的应用程序的WPF树。此

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

目标是显示任意对象的内容(不仅仅是为了调试目的)

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

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


我相信你要找的是

我想你应该看看史努比


此程序将允许您导航任何正在运行的应用程序的WPF树。此工具不需要调试,并且该工具可能无法与调试一起使用。通常,我在非调试场景中使用它来查看WPF控件的实际布局,以及除了WPF树可视化工具之外,它们的各种属性值是什么?有,这已经不是免费的了,但是很好

编辑:


阅读编辑后的问题。您正在显式命名PropertyGrid,我认为您已经尝试过了?

因此您需要一个在运行时显示类字段的控件。通过查找“属性网格”,您将找到大量关于此的文章。这不是你想要的,而是一个开始。基本上,您可以通过反射在类的字段上进行迭代,并将它们显示在ListView/TreeView中。但是,这是一个困难的部分开始,确定哪些字段要显示,哪些字段要隐藏,处理非常不同的类型和原语,并允许通过类型转换编辑它们(如字符串到矩形、点、颜色等),这是一个非常复杂的问题。
可能会为您提供一个良好的起点。

现有的各种控件允许您将属性视为属性网格


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

我已经寻找了几个月的答案;Snoop、Spy和其他所有工具都不适用于我,因为线程所有权受到侵犯

Microsoft有一个windows工具,允许您选择任何正在运行的UI元素并查看该元素的可访问性数据:

inspect.exe

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

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

这对于将对象内容汇总为一行非常有用,但对于创建层次视图来说通常非常糟糕。我认为类似于可视化工具的东西是更合适的调试工具不幸的是,这与我的问题无关。我不清楚我到底想要什么-请看我的编辑。:)可能重复)您正在寻找属性网格的WPF版本吗?不幸的是,这与我的问题无关。我不清楚我到底想要什么-请看我的编辑。:)不幸的是,这与我的问题无关。我不清楚我到底想要什么-请看我的编辑。:)编辑我的答案,看看是否是你想要的。