Trabajo con muchas imágenes de punto flotante, y me parece extremadamente útil tener una representación basada en imágenes de mis matrices. Me gustaría crear un UserControl de WPF que represente la matriz de datos (como se muestra a continuación) como una imagen, en lugar de una lista desplazable de valores de texto.¿Cómo puedo crear un complemento adornador de imágenes personalizado para matrices numéricas en Visual Studio 2010?
¿Esto es posible? He consultado el MDSN documentation en la extensibilidad de VS 2010, en SO list of VS 2010 extensions, y en this topic en la creación de un editor personalizado, pero estoy un poco perdido sobre dónde empezar.
Actualización 1:
Gracias a Brian y Basarat Ali para los conductores en DebuggerVisualizer. Parece que la estrategia correcta, EXCEPTO que desafortunadamente un visualizador para cualquier tipo de matrices is disallowed.
Una solución temporal (de utilidad limitada) es visualizar un objeto contenedor.
A sugerencia de Brian, han publicado una solución en CodePlex:
VS2010 Debugger Visualizers Contrib (http://debuggervisualizers.codeplex.com/).
El código fuente del proyecto muestra un visualizador de envoltura de trabajo y un visualizador de datos "en bruto" no funcional para una matriz 1D doble []. Aquí hay una captura de pantalla de la consola de prueba de funcionamiento:
Si alguien tiene alguna sugerencia sobre cómo trabajar alrededor de este problema, por favor hágamelo saber!
Además, ¡cualquier explicación de por qué System.Array no se puede visualizar es bienvenida!
Actualización 2:
acabo de re-SO buscado con la palabra DebuggerVisualizer, y parece que este es previously asked. Parece que el usuario Will Dean sugiere implementar el trabajo de Project Mole: using a WeakReference. Sin embargo, no veo cómo esto funcionaría en un DebuggerVisualizer.
Actualización 3:
Josh Smith de Project Mole simplemente suggested un trabajo muy útil en todo (gracias Josh!):
Nota, se puede utilizar el enfoque ArrayWrapper sin necesidad de modificar el código fuente para abrir un visualizador Puede escribir esto en la ventana Inspección en VS:
new YourNamespace.ArrayWrapper (myArray);
Pulse la tecla Intro, luego debería ver un icono de lupa en la ventana Mirar al lado de esa línea de código. Haga clic para abrir su visualizador personalizado.
Gracias! Ver mi actualización: parece System.Array no está permitido. –
Solo para actualizar, gracias por los consejos sobre exportación, pero realmente quiero una solución para visualizar sobre la marcha. –
Parece que DebuggerVisualizer es el camino a seguir. Para las matrices nativas, vea una solución alternativa en mi Actualización # 3 que usa la ventana Inspección en VS. –