Lavoro con molte immagini in virgola mobile e troverei estremamente utile avere una rappresentazione basata su immagini dei miei array. Mi piacerebbe creare un UserControl WPF che restituisce l'array di dati (come mostrato sotto) come un'immagine, invece di un elenco scorrevole di valori di testo.Come è possibile creare un componente aggiuntivo personalizzato per l'adorner di immagini per gli array numerici in Visual Studio 2010?
È possibile? Ho esaminato lo MDSN documentation sull'estensibilità VS 2010, al SO list of VS 2010 extensions e al this topic sulla creazione di un editor personalizzato, ma sono un po 'perso su dove iniziare.
Update 1:
Grazie a Brian e Basarat Ali per i conduttori su DebuggerVisualizer. Sembra la strategia corretta, TRANNE che sfortunatamente un visualizzatore per qualsiasi tipo di array is disallowed.
Un work-around (di utilità limitata) consiste nel visualizzare un oggetto wrapper.
Su suggerimento di Brian, ho postato una soluzione su CodePlex:
VS2010 Debugger Visualizers Contrib (http://debuggervisualizers.codeplex.com/).
Il codice sorgente del progetto mostra un visualizzatore wrapper funzionante e un visualizzatore di dati "non elaborati" non funzionante per un array 1D double []. Ecco uno screenshot del test console in esecuzione:
Se qualcuno ha qualche suggerimento su come lavorare-a questo problema, per favore fatemelo sapere!
Inoltre, qualsiasi spiegazione del motivo per cui System.Array non può essere visualizzato è il benvenuto!
Aggiornamento 2:
ho appena ri-cercato SO con la parola DebuggerVisualizer, e trovo che questo sia previously asked. Sembra che l'utente Will Dean suggerisca di implementare il work-around di Project Mole using a WeakReference. Tuttavia, non si vede come funzionerebbe in un DebuggerVisualizer.
Update 3:
Josh Smith di Project Mole solo suggested un lavoro molto utile intorno (grazie Josh!):
Nota, è possibile utilizzare il metodo ArrayWrapper senza bisogno di modificare il codice sorgente per aprire un visualizzatore. È possibile digitare questo nella finestra Watch in VS:
new YourNamespace.ArrayWrapper (myArray);
Premi il tasto Invio, quindi dovresti visualizzare l'icona della lente di ingrandimento nella finestra di controllo accanto a quella riga di codice. Fai clic per aprire il tuo visualizzatore personalizzato.
Grazie! Vedi il mio aggiornamento: sembra che System.Array non sia consentito. –
Solo per l'aggiornamento, grazie per il consiglio di esportazione, ma voglio davvero una soluzione per la visualizzazione al volo. –
Sembra che DebuggerVisualizer sia la strada da percorrere. Per gli array nativi, vedere un work-around nel mio aggiornamento n. 3 che utilizza la finestra Watch in VS. –