簡體   English   中英

可視化WPF控件中的對象屬性

[英]Visualize object properties in a WPF control

是否可以將對象(其屬性及其值)可視化並將其打印出來(將其轉儲 - 類似於序列化)到WPF控件(如TreeView或PropertyGrid)以檢查對象?

目標是顯示任何仲裁對象的內容(不僅用於調試目的)。

有關進一步說明:我不是在尋找任何調試工具或顯示WPF Visual Tree的方法。 這個問題只與WPF有一定關系 - > WPF只是顯示對象轉儲的媒體,因為WPF和WinForms之間的控件可能不同。

對於嵌套對象實例,列表等,輸出應該是分層的。

對象可視化

我想你應該看一下Snoop

該程序將允許您導航任何正在運行的應用程序的WPF樹。 此工具不需要調試,並且該工具可能無法與調試一起使用。 通常我會在非調試場景中使用它來查看我的WPF控件是如何實際布局的以及它們對各種屬性的值

你的意思是除了WPF Tree Visualizer之外? 鼴鼠 ,不再是免費的,但非常好。

編輯:

閱讀您編輯的問題。 您明確命名了PropertyGrid,我認為您已經嘗試過Extended WPF Toolkit的PropertyGrid

所以你想要一個在運行時顯示類的字段的控件。 您可以通過查找“Property grid”找到大量關於此的文章。 它不是你想要的,而是它的開始。 您基本上通過對類的字段的反射進行迭代,並在ListView / TreeView中顯示它們。 但是,這是困難的部分開始,確定要顯示哪些字段和隱藏哪些字段,處理非常不同的類型和基元,並允許使用類型轉換編輯它們(如字符串到矩形,點,顏色等)是一個非常復雜的事情。 這種控制可能會給你一個很好的起點。

現有各種控件可讓您將屬性視為屬性網格。

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

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

https://wpg.codeplex.com/

根據他們提供的復雜性,許可證和功能,您必須選擇一個,所有這些都是免費的。

幾個月來我一直在尋找答案; 由於線程所有權違規,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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM