====== WvdS VSCode UI Preview ======
La UI Preview Extension renderizza le interfacce PXAML in tempo reale durante lo sviluppo.
===== Funzione e scopo =====
La Preview Extension offre:
* **Anteprima live** - Visualizzazione istantanea delle modifiche PXAML
* **Hot Reload** - Aggiornamento automatico al salvataggio del file
* **Simulazione dispositivi** - Anteprima su diverse dimensioni schermo
* **Controllo zoom** - Ingrandimento e riduzione dell'anteprima
===== Comandi =====
^ Comando ^ Descrizione ^
| ''WVDS: Start Preview'' | Avvia l'anteprima live |
| ''WVDS: Stop Preview'' | Termina l'anteprima |
| ''WVDS: Refresh Preview'' | Forza un aggiornamento |
===== Lavorare con l'anteprima =====
==== Avviare l'anteprima ====
**Metodo 1: Automatico**
- Aprite un file .pxaml
- Il Designer mostra automaticamente l'anteprima
**Metodo 2: Manuale**
- ''Ctrl+Shift+P'' -> ''WVDS: Start Preview''
- Si apre un nuovo pannello con l'anteprima
==== Pannello anteprima ====
Il pannello mostra:
* **Area anteprima** - UI renderizzata
* **Toolbar** - Zoom, selezione dispositivo, refresh
* **Stato** - Ultimo aggiornamento, errori
==== Auto-Refresh ====
Con Hot Reload attivato:
- Modificate il file PXAML
- Salvate (''Ctrl+S'')
- L'anteprima si aggiorna automaticamente
==== Refresh manuale ====
Se l'aggiornamento automatico non funziona:
- Cliccate sull'icona Refresh nella toolbar
- Oppure: ''WVDS: Refresh Preview''
===== Simulazione dispositivi =====
L'anteprima può simulare vari dispositivi:
^ Preset ^ Larghezza ^ Altezza ^ Caso d'uso ^
| Desktop | 1920 | 1080 | Desktop standard |
| Laptop | 1366 | 768 | Schermo laptop |
| Tablet | 1024 | 768 | Tablet orizzontale |
| Tablet Portrait | 768 | 1024 | Tablet verticale |
| Mobile | 375 | 667 | Smartphone |
| Custom | Variabile | Variabile | Dimensioni personalizzate |
==== Selezionare il dispositivo ====
- Cliccate sull'icona dispositivo nella toolbar
- Scegliete un preset
- Oppure: inserite dimensioni personalizzate
==== Test responsive ====
Utilizzate diversi dispositivi per testare layout responsive:
* Grid con dimensioni Star (''*'')
* Vincoli MinWidth/MaxWidth
* ViewBox per scalatura
===== Controllo zoom =====
^ Azione ^ Scorciatoia ^ Descrizione ^
| Zoom In | ''Ctrl+'' | Ingrandisce l'anteprima |
| Zoom Out | ''Ctrl-'' | Riduce l'anteprima |
| Fit | ''Ctrl+0'' | Adatta allo spazio disponibile |
| 100% | ''Ctrl+1'' | Dimensione originale |
===== Interattività =====
L'anteprima supporta interazione limitata:
==== Azioni supportate ====
* **Click sui pulsanti** - Feedback visivo (nessuna gestione eventi)
* **Effetti hover** - Vengono visualizzati gli stili MouseOver
* **Focus** - Vengono mostrati i bordi di focus
* **Scroll** - ScrollViewer funziona
==== Non supportato ====
* Gli event handler non vengono eseguiti
* Il Data Binding mostra solo dati statici
* Le animazioni non vengono eseguite
La funzionalità completa è disponibile solo a runtime.
===== Visualizzazione errori =====
In caso di errori PXAML, l'anteprima mostra:
* **Messaggio di errore** - Descrizione del problema
* **Posizione** - Riga e colonna nel codice
* **Evidenziazione** - La parte errata viene evidenziata
==== Esempio ====
Error: Unknown element 'Buttn' at line 5, column 3
Did you mean 'Button'?
===== Performance =====
==== Ottimizzazione ====
Per un'anteprima più veloce:
* Riducete la complessità durante lo sviluppo
* Utilizzate dati design-time invece di dati live
* Disattivate le animazioni in modalità design
==== Consumo risorse ====
L'anteprima viene eseguita in un pannello WebView e consuma:
* circa 50-100 MB di RAM
* CPU minima quando inattiva
* Picchi di CPU durante gli aggiornamenti
===== Impostazioni =====
{
// Aggiornamento automatico al salvataggio
"wvds.preview.autoRefresh": true,
// Ritardo prima del refresh (ms)
"wvds.preview.refreshDelay": 300,
// Dispositivo predefinito
"wvds.preview.defaultDevice": "Desktop"
}
===== Risoluzione dei problemi =====
==== L'anteprima rimane vuota ====
**Causa:** Errore PXAML o dipendenze mancanti.
**Soluzione:**
- Controllate la sintassi PXAML
- Verificate l'Output Channel per errori
- Assicuratevi che tutte le risorse referenziate esistano
==== L'anteprima non si aggiorna ====
**Causa:** Auto-refresh disabilitato o errore.
**Soluzione:**
- Controllate ''wvds.preview.autoRefresh''
- Salvate il file esplicitamente (''Ctrl+S'')
- Eseguite ''WVDS: Refresh Preview''
==== L'anteprima mostra una rappresentazione errata ====
**Causa:** Differenze tra design-time e runtime.
**Soluzione:**
- Alcune funzionalità sono disponibili solo a runtime
- Controllate gli attributi design-time (''d:DesignWidth'', ecc.)
- Testate con un build reale
==== Alto consumo di risorse ====
**Causa:** UI complessa o molti aggiornamenti.
**Soluzione:**
- Aumentate ''wvds.preview.refreshDelay''
- Riducete la complessità della UI
- Chiudete i pannelli anteprima non necessari
===== Dettagli tecnici =====
^ Proprietà ^ Valore ^
| Extension ID | wvds.wvds-vscode-ui-preview |
| Attivazione | onLanguage:pxaml |
| Dipendenze | wvds-vscode-core, wvds-vscode-ui-designer |
| Min. VS Code | 1.85.0 |
| Renderer | Basato su WebView |
===== Vedere anche =====
* [[.:designer|UI Designer - Editor visuale]]
* [[.:meta|UI Meta - Registro componenti]]
* [[.:build|Build - Compilazione completa]]