我使用很多浮点图像,并且会发现拥有基于图像的数组表示非常有用。我想创建一个 WPF UserControl,它将数据数组(如下所示)呈现为图像,而不是文本值的可滚动列表。
这可能吗?我查看了有关 VS 2010 可扩展性的MDSN 文档、SO 的VS 2010 扩展列表以及有关创建自定义编辑器的主题,但我对从哪里开始有点迷茫。
更新1:
感谢 Brian 和 Basarat Ali 在 DebuggerVisualizer 上的领导。看起来是正确的策略,但不幸的是,任何类型的数组的可视化工具都是不允许的。
一种解决方法(实用性有限)是可视化包装器对象。
在 Brian 的建议下,我在 CodePlex 上发布了一个解决方案:
VS2010 Debugger Visualizers Contrib ( http://debuggervisualizers.codeplex.com/ )。
该项目的源代码演示了一个工作包装可视化器和一个用于一维 double[] 数组的非功能性“原始”数据可视化器。这是运行测试控制台的屏幕截图:
如果有人对如何解决此问题有任何建议,请告诉我!
此外,欢迎对 System.Array 为什么无法可视化的任何解释!
更新 2:
我刚刚用 DebuggerVisualizer 这个词重新搜索了 SO,发现这是以前问过的。看起来用户 Will Dean 建议使用 WeakReference 来实现 Project Mole 的解决方法。不过,看不到这在 DebuggerVisualizer 中是如何工作的。
更新 3:
Project Mole的Josh Smith刚刚提出了一个非常有用的解决方法(感谢 Josh!):
请注意,您可以使用 ArrayWrapper 方法而无需修改源代码来打开可视化工具。你可以在 VS 的 Watch 窗口中输入:
新的 YourNamespace.ArrayWrapper(myArray);
按 Enter 键,然后您应该会在该代码行旁边的 Watch 窗口中看到一个放大镜图标。单击它以打开您的自定义可视化工具。