L'UI Designer consente lo sviluppo visuale PXAML in VS Code - un editor WYSIWYG per interfacce utente basate su Pascal.
Il Designer offre:
PXAML (Pascal XAML) è un formato di markup basato su XML per interfacce utente, ispirato a WPF/XAML.
<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>
| 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 |
| 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à |
Ctrl+Shift+P → WVDS Designer: New PXAML FileQuando aprite un file .pxaml, il Designer viene attivato automaticamente.
L'editor mostra:
Per modificare il codice sorgente PXAML:
Tramite Drag & Drop:
Tramite codice:
<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 | 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 |
| 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 |
<TextBox Text="{Binding Path=UserName, Mode=TwoWay}"/> <Label Content="{Binding Path=WelcomeMessage}"/>
<Button Content="Salva" Click="OnSaveClick"/>
L'handler viene implementato nella unit code-behind:
procedure TMainWindow.OnSaveClick(Sender: TObject); begin // Logica di salvataggio end;
Il Designer utilizza le impostazioni della UI Meta Extension per IntelliSense e informazioni sui componenti.
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.
Causa: Errore di sintassi PXAML o componenti mancanti.
Soluzione:
Causa: Auto-refresh disabilitato o errore.
Soluzione:
Ctrl+S)WVDS: Refresh Preview manualmenteCausa: Area sbagliata o container non supportato.
Soluzione:
| 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 |