Я работаю со многими изображениями с плавающей точкой, и было бы чрезвычайно полезно иметь основанное на изображении представление моих массивов.Я хотел бы создать WPF UserControl, который отображает массив данных (как показано ниже) в виде изображения вместо прокручиваемого списка текстовых значений.
Возможно ли это?Я посмотрел документацию MDSN о расширяемости VS 2010, список расширений VS 2010 от SO и эту тему о создании собственного редактора, но яЯ немного растерялся, с чего начать.
Обновление 1:
Спасибо Брайану и Басарату Али за помощь вDebuggerVisualizer.Похоже, правильная стратегия, за исключением того, что, к сожалению, визуализатор для любого типа массивов не разрешен .
Обходной путь (ограниченной полезности) - визуализация объекта-оболочки.
По предложению Брайана я разместил решение на CodePlex:
VS2010Отладчик Visualizer Contrib (http://debuggervisualizers.codeplex.com/).
Исходный код проекта демонстрирует работающий визуализатор оболочки и нефункциональный визуализатор «сырых» данных для одномерного массива double []. Вот скриншотработает тестовая консоль:
Если у кого-нибудь есть какие-либо предложения по обходу этой проблемы, пожалуйста, сообщите мне!
Также, любое объяснениепочему System.Array не может быть визуализирован, приветствуется!
Обновление 2:
Я только что произвел повторный поиск SO со словом DebuggerVisualizer и обнаружил, что это ранее спрашивал . Похоже, пользователь Уилл Дин предлагает реализовать обходной путь Project Mole с использованием WeakReference . Хотя не вижу, как это будет работать в DebuggerVisualizer.
Обновление 3:
Джош Смит из Project Mole просто предложил очень полезная работа вокруг (спасибо Джош!):
Обратите внимание, выВы можете использовать подход ArrayWrapper без необходимости изменять исходный код для открытия визуализатора.Вы можете напечатать это в окне Watch в VS:
new YourNamespace.ArrayWrapper (myArray);
Нажмите клавишу Enter, тогда вы увидите значок увеличительного стекла в окне Watch рядом сэта строка кода.Нажмите на нее, чтобы открыть свой пользовательский визуализатор.