Formazione
Modulo
Personalizzare il layout nelle pagine XAML di .NET MAUI - Training
Creare interfacce utente coerenti su dispositivi diversi usando i tipi di layout StackLayout e Grid.
Questo browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Nelle app XAML la maggior parte degli elementi dell'interfaccia utente ereditano dalla classe FrameworkElement. Ogni classe FrameworkElement ha proprietà relative a dimensioni, allineamento, margine e spaziatura interna che influenzano il comportamento di layout. Le indicazioni seguenti offrono una panoramica di come usare queste proprietà di layout per assicurarsi che l'interfaccia utente dell'app sia leggibile e facile da usare in qualsiasi contesto.
L'uso di dimensioni appropriate garantisce che tutto il contenuto sia chiaro e leggibile. Gli utenti non dovrebbero eseguire lo scorrimento o lo zoom per decifrare il contenuto principale.
Height e Width specificano le dimensioni di un elemento. I valori predefiniti sono matematicamente NaN
(Not A Number). Puoi impostare valori fissi misurati in pixel effettivi o usare Auto o il ridimensionamento proporzionale per un comportamento fluido.
ActualHeight e ActualWidth sono proprietà di sola lettura che indicano la dimensione di un elemento in runtime. Se i layout fluidi si espandono o riducono, i valori vengono modificati in un evento SizeChanged. Un oggetto RenderTransform non modifica i valori di ActualHeight e ActualWidth.
MinWidth/MaxWidth e MinHeight/MaxHeight specificano i valori che vincolano le dimensioni di un elemento, consentendo il ridimensionamento fluido.
FontSize e altre proprietà di testo controllano le dimensioni del layout per gli elementi di testo. Gli elementi di testo non hanno dimensioni dichiarate in modo esplicito, ma dispongono di elementi ActualWidth e ActualHeight calcolati.
L'allineamento rende l'aspetto dell'interfaccia utente interessante, organizzato ed equilibrato e può essere usato anche per stabilire relazioni e gerarchia visiva.
HorizontalAlignment e VerticalAlignment specificano come deve essere posizionato un elemento all'interno del relativo contenitore padre.
Stretch è il valore predefinito per entrambe le proprietà e gli elementi riempiono tutto lo spazio disponibile nel contenitore padre. Un valore Height e Width con un numero reale annulla un valore Stretch, che agirà come valore Center. Alcuni controlli, ad esempio Button, eseguono l'override del valore Stretch predefinito nel relativo stile predefinito.
HorizontalContentAlignment e VerticalContentAlignment specificano come sono posizionati gli elementi figlio in un contenitore.
L'allineamento può influire sul ritaglio all'interno di un pannello di layout. Ad esempio, con HorizontalAlignment="Left"
, il lato destro dell'elemento viene ritagliato se il contenuto è maggiore di ActualWidth.
Gli elementi di testo usano la proprietà TextAlignment. In generale, è consigliabile usare l'allineamento a sinistra, ovvero il valore predefinito. Per altre informazioni sull'applicazione di stili al testo, vedi Tipografia.
Le proprietà relative al margine (Margin) e alla spaziatura interna (Padding) consentono di evitare che l'interfaccia utente risulti troppo piena o troppo rada e possono anche semplificare l'uso di determinati input, come la penna e il tocco. Di seguito è riportata una figura in cui sono visualizzati i margini e la spaziatura interna per un contenitore e il relativo contenuto.
Margin controlla la quantità di spazio vuoto intorno a un elemento. Margin non aggiunge pixel a ActualHeight e ActualWidth e non è considerata parte dell'elemento ai fini di hit testing e sourcing degli eventi di input.
Margin="20"
, all'elemento viene applicato un margine uniforme di 20 pixel sui lati sinistro, superiore, destro e inferiore. Con Margin="0,10,5,25"
, i valori vengono applicati sui lati sinistro, superiore, destro e inferiore (in questo ordine).Padding controlla la quantità di spazio tra il bordo interno di un elemento e i relativi elementi o contenuti figlio. Un valore di riempimento positivo riduce l'area di contenuto dell'elemento.
A differenza della proprietà Margin, Padding non è una proprietà di FrameworkElement. Esistono diverse classi che definiscono la propria proprietà Padding:
In ciascuno di questi casi, gli elementi hanno anche una proprietà Margin. Se si applicano sia Margin sia Padding, questi sono additivi, ovvero la distanza apparente tra un contenitore più esterno e qualsiasi contenuto interno sarà data dal margine più la spaziatura interna.
Esame degli effetti di Margin e Padding sui controlli reali. Ecco un controllo TextBox all'interno di una griglia con i valori predefiniti di Margin e Padding pari a 0.
Ecco gli stessi valori TextBox e Grid con Margin e Padding nel controllo TextBox, come illustrato in questo codice XAML.
<Grid BorderBrush="Blue" BorderThickness="4" Width="200">
<TextBox Text="This is text in a TextBox." Margin="20" Padding="16,24"/>
</Grid>
Non è necessario impostare ogni valore di proprietà singolarmente in un controllo. In genere è più efficiente raggruppare i valori delle proprietà in una risorsa Style e applicare style a un controllo . Ciò vale soprattutto quando è necessario applicare gli stessi valori di proprietà a molti controlli. Per altre informazioni sull'uso degli stili, vedi Stili XAML.
Feedback su Windows developer
Windows developer è un progetto di open source. Selezionare un collegamento per fornire feedback:
Formazione
Modulo
Personalizzare il layout nelle pagine XAML di .NET MAUI - Training
Creare interfacce utente coerenti su dispositivi diversi usando i tipi di layout StackLayout e Grid.