Как создать настраиваемую надстройку графического редактора для числовых массивов в Visual Studio 2010? - PullRequest
7 голосов
/ 10 ноября 2010

Я работаю со многими изображениями с плавающей точкой, и было бы чрезвычайно полезно иметь основанное на изображении представление моих массивов.Я хотел бы создать WPF UserControl, который отображает массив данных (как показано ниже) в виде изображения вместо прокручиваемого списка текстовых значений.

Возможно ли это?Я посмотрел документацию MDSN о расширяемости VS 2010, список расширений VS 2010 от SO и эту тему о создании собственного редактора, но яЯ немного растерялся, с чего начать.

alt text

Обновление 1:

Спасибо Брайану и Басарату Али за помощь вDebuggerVisualizer.Похоже, правильная стратегия, за исключением того, что, к сожалению, визуализатор для любого типа массивов не разрешен .

Обходной путь (ограниченной полезности) - визуализация объекта-оболочки.

По предложению Брайана я разместил решение на CodePlex:

VS2010Отладчик Visualizer Contrib (http://debuggervisualizers.codeplex.com/).

Исходный код проекта демонстрирует работающий визуализатор оболочки и нефункциональный визуализатор «сырых» данных для одномерного массива double []. Вот скриншотработает тестовая консоль:

alt text

Если у кого-нибудь есть какие-либо предложения по обходу этой проблемы, пожалуйста, сообщите мне!

Также, любое объяснениепочему System.Array не может быть визуализирован, приветствуется!

Обновление 2:

Я только что произвел повторный поиск SO со словом DebuggerVisualizer и обнаружил, что это ранее спрашивал . Похоже, пользователь Уилл Дин предлагает реализовать обходной путь Project Mole с использованием WeakReference . Хотя не вижу, как это будет работать в DebuggerVisualizer.

Обновление 3:

Джош Смит из Project Mole просто предложил очень полезная работа вокруг (спасибо Джош!):

Обратите внимание, выВы можете использовать подход ArrayWrapper без необходимости изменять исходный код для открытия визуализатора.Вы можете напечатать это в окне Watch в VS:

new YourNamespace.ArrayWrapper (myArray);

Нажмите клавишу Enter, тогда вы увидите значок увеличительного стекла в окне Watch рядом сэта строка кода.Нажмите на нее, чтобы открыть свой пользовательский визуализатор.

Ответы [ 2 ]

2 голосов
/ 28 ноября 2010

Вы должны создать визуализатор отладчика. Вот пошаговое руководство: http://msdn.microsoft.com/en-us/library/ms164759.aspx. Я считаю, что вы хотите, чтобы иметь возможность просматривать все результаты во внешней программе. Для этого вы можете просто добавить опцию экспорта в свой список, чтобы экспортировать как CSV-файл. Однако, если вы все еще чувствуете, что хотите растровое изображение, вы можете преобразовать список в изображение, используя RenderTargetBitmap: http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.rendertargetbitmap.aspx

0 голосов
/ 28 ноября 2010

Так как это для информации времени выполнения в отладчике, вы можете рассмотреть DebuggerVisualizer , а не расширение редактора.Есть некоторые компромиссы, я не уверен, что было бы лучше для этого.

(В любом случае, я думаю, что это возможно, и это выглядит полезным, и я надеюсь, что кто-то с запасными выходными взломаети отправляет исходный код.)

...