代码之家  ›  专栏  ›  技术社区  ›  lightw8

如何在Visual Studio 2010中为数字数组创建自定义图像装饰插件?

  •  7
  • lightw8  · 技术社区  · 14 年前

    我处理了很多浮点图像,并且发现对数组进行基于图像的表示非常有用。我想创建一个WPF用户控件,它将数据数组(如下所示)呈现为图像,而不是文本值的可滚动列表。

    这有可能吗?我看过 MDSN documentation 在vs 2010扩展性上,在so's list of VS 2010 extensions ,和 this topic 在创建自定义编辑器时,我有点迷失在从哪里开始。

    alt text

    更新1:

    感谢Brian和Basarat Ali为Debuggervisualizer提供线索。看起来是正确的策略,但不幸的是,对于任何类型的数组,都是一个可视化工具 is disallowed .

    解决方法(实用性有限)是可视化包装器对象。

    根据布莱恩的建议,我在codeplex上发布了一个解决方案:

    VS2010 Debugger Visualizers Contrib ( http://debuggervisualizers.codeplex.com/ )

    该项目的源代码演示了1d double[]数组的工作包装可视化工具和非功能“原始”数据可视化工具。下面是正在运行的测试控制台的屏幕截图:

    alt text

    如果有人对如何解决这个问题有任何建议,请告诉我!

    此外,欢迎对System.Array无法可视化的原因进行任何解释!

    更新2:

    我只是用debuggervisualizer这个词重新搜索了一下,然后发现 previously asked . 看来用户会迪恩建议实施摩尔项目的工作 using a WeakReference . 不过,在调试程序虚拟化器中看不到这是如何工作的。

    更新3:

    Josh Smith 属于 Project Mole 只是 suggested 非常有帮助的工作(谢谢乔希!):

    注意,您可以使用ArrayRapper方法,而无需修改源代码以打开可视化工具。您可以在vs中的监视窗口中键入:

    新的yournamespace.arrayRapper(myArray);

    按Enter键,然后您将在该代码行旁边的监视窗口中看到放大镜图标。单击它打开自定义可视化工具。

    2 回复  |  直到 14 年前
        1
  •  2
  •   basarat    14 年前

    您应该创建一个调试器可视化工具。下面是一个演练: http://msdn.microsoft.com/en-us/library/ms164759.aspx . 我相信你想要的是能够在一个外部程序中查看所有的结果。为此,您只需向列表中添加一个导出选项,以导出为csv文件。但是,如果仍然需要位图,可以使用renderTargetBitmap将列表转换为图像: http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.rendertargetbitmap.aspx

        2
  •  0
  •   Brian    14 年前

    由于这是用于调试器中的运行时信息,因此可以考虑 DebuggerVisualizer 而不是编辑器扩展。有一些权衡,我不清楚哪一个最好。

    (在任何情况下,我认为这是可能的,它看起来确实有用,我希望有人利用周末的空闲时间破解并发布源代码。)