WvdS VSCode UI Designer

L'UI Designer consente lo sviluppo visuale PXAML in VS Code - un editor WYSIWYG per interfacce utente basate su Pascal.

Funzione e scopo

Il Designer offre:

  • Editor visuale - Design UI drag-and-drop
  • Sintassi PXAML - Markup compatibile WPF/XAML per Pascal
  • Anteprima live - Anteprima in tempo reale durante la modifica
  • Pannello proprietà - Modifica visuale delle proprietà
  • Palette componenti - Panoramica dei controlli disponibili

Cos'è PXAML?

PXAML (Pascal XAML) è un formato di markup basato su XML per interfacce utente, ispirato a WPF/XAML.

Esempio

<Window Title="Hello PXAML" Width="400" Height="300">
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="Auto"/>
      <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
 
    <Label Grid.Row="0" Content="Benvenuto!" FontSize="24"/>
 
    <StackPanel Grid.Row="1" Orientation="Vertical" Margin="10">
      <TextBox x:Name="txtInput" PlaceholderText="Inserisci il nome..."/>
      <Button Content="Saluta" Click="OnGreetClick"/>
    </StackPanel>
  </Grid>
</Window>

PXAML vs. LFM

Aspetto PXAML LFM (Lazarus)
Formato XML Proprietario (binario o testo)
Leggibilità Alta Media
Controllo versione Eccellente (diff-friendly) Difficile
Designer WvdS Designer Lazarus IDE
Target GUI, TUI, Web Solo GUI

Comandi

Comando Scorciatoia Descrizione
WVDS Designer: New PXAML File - Crea un nuovo file PXAML
WVDS Designer: Toggle Designer Preview - Alterna tra vista codice e design
WVDS Designer: Show Properties Panel - Mostra il pannello delle proprietà

Lavorare con il Designer

Creare un file PXAML

  1. Ctrl+Shift+PWVDS Designer: New PXAML File
  2. Inserite un nome
  3. Il file viene creato con un template base

Aprire la vista Design

Quando aprite un file .pxaml, il Designer viene attivato automaticamente.

L'editor mostra:

  • Area Design - Rappresentazione visuale della UI (sinistra)
  • Pannello Properties - Proprietà dell'elemento selezionato (destra)
  • Toolbox - Controlli disponibili (in basso a sinistra)

Vista codice

Per modificare il codice sorgente PXAML:

  1. Cliccate su „Source“ nella toolbar
  2. Oppure: clic destro → „View Source“

Aggiungere componenti

Tramite Drag & Drop:

  1. Trascinate un controllo dalla Toolbox
  2. Rilasciatelo nell'area Design
  3. Posizionatelo come desiderato

Tramite codice:

  1. Passate alla vista codice
  2. Inserite manualmente l'elemento
  3. L'anteprima si aggiorna automaticamente

Modificare le proprietà

  1. Selezionate un elemento nel Designer
  2. Il pannello Properties mostra tutte le proprietà disponibili
  3. Modificate i valori direttamente nel pannello
  4. Le modifiche vengono mostrate immediatamente nell'anteprima

Fondamenti PXAML

Namespace

<Window xmlns="http://schemas.wvds.de/pxaml/2024"
        xmlns:x="http://schemas.wvds.de/pxaml/x/2024"
        xmlns:local="clr-namespace:MyApp">
</Window>
Namespace Utilizzo
Standard (senza prefisso) Controlli base (Button, TextBox, Grid, …)
x: Estensioni markup (x:Name, x:Key, …)
local: Tipi personalizzati dal progetto

Container di layout

Container Descrizione
Grid Layout a righe e colonne
StackPanel Impila elementi orizzontalmente o verticalmente
DockPanel Ancora elementi ai bordi
Canvas Posizionamento assoluto
WrapPanel Disposizione con a capo

Controlli comuni

Controllo Descrizione
Button Pulsante con evento Click
TextBox Input testo su singola riga
Label Visualizzazione testo
CheckBox Selezione sì/no
ComboBox Selezione dropdown
ListBox Selezione da lista
Image Visualizzazione immagine
Border Bordo e sfondo

Data Binding

<TextBox Text="{Binding Path=UserName, Mode=TwoWay}"/>
<Label Content="{Binding Path=WelcomeMessage}"/>

Event Handler

<Button Content="Salva" Click="OnSaveClick"/>

L'handler viene implementato nella unit code-behind:

procedure TMainWindow.OnSaveClick(Sender: TObject);
begin
  // Logica di salvataggio
end;

Impostazioni

Il Designer utilizza le impostazioni della UI Meta Extension per IntelliSense e informazioni sui componenti.

Rendering multi-target

PXAML può essere renderizzato per diversi target:

Target Descrizione Renderer
GUI Interfaccia desktop nativa Basato su LCL
TUI Interfaccia terminale Basato su testo
Web Interfaccia browser HTML/CSS

La selezione avviene al momento del build, non nel Designer.

Risoluzione dei problemi

Il Designer mostra una pagina vuota

Causa: Errore di sintassi PXAML o componenti mancanti.

Soluzione:

  1. Passate alla vista codice
  2. Controllate la sintassi PXAML (validazione XML)
  3. Assicuratevi che tutti i componenti referenziati esistano

L'anteprima non si aggiorna

Causa: Auto-refresh disabilitato o errore.

Soluzione:

  1. Salvate il file (Ctrl+S)
  2. Eseguite WVDS: Refresh Preview manualmente
  3. Controllate l'Output Channel per errori

Drag & Drop non funziona

Causa: Area sbagliata o container non supportato.

Soluzione:

  1. Assicuratevi di rilasciare nell'area Design
  2. Verificate se il container di destinazione accetta figli
  3. Alcuni container (es. Border) accettano solo un figlio

Dettagli tecnici

Proprietà Valore
Extension ID wvds.wvds-vscode-ui-designer
Attivazione onCustomEditor:wvds.ui.designer.pxaml
Dipendenze wvds-vscode-core
Min. VS Code 1.85.0
Formato file .pxaml

Vedere anche

Zuletzt geändert: il 29/01/2026 alle 22:28