DockLayout
DockLayout
è un layout in cui le visualizzazioni possono essere ancorate ai lati del contenitore di layout.
L'immagine seguente mostra come un oggetto DockLayout
è strutturato concettualmente. Le visualizzazioni figlio sono ancorate a una delle 4 possibili posizioni di ancoraggio: Top, Bottom, Left o Right (equivalente a DockPosition.Top
, DockPosition.Bottom
DockPosition.Left
, e DockPosition.Right
). Le visualizzazioni che non sono ancorate in modo esplicito (o con DockPosition.None
) vengono visualizzate al centro (o tra le posizioni superiore / inferiore e sinistra / destra).
Creazione di un DockLayout
Le sezioni seguenti illustrano come usare un DockLayout
in C# e XAML.
XAML
Inclusione dello spazio dei nomi XAML
Per usare il toolkit in XAML, è necessario aggiungere le informazioni seguenti xmlns
nella pagina o nella visualizzazione:
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Di conseguenza:
<ContentPage
x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
</ContentPage>
Verrà modificato in modo da includere l'oggetto xmlns
come indicato di seguito:
<ContentPage
x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">
</ContentPage>
Uso di DockLayout
Un elemento di base DockLayout
può essere creato in XAML, come illustrato di seguito:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
x:Class="MyProject.MyContentPage">
<toolkit:DockLayout>
<Button toolkit:DockLayout.DockPosition="Top" Text="Top" HeightRequest="50" />
<Button toolkit:DockLayout.DockPosition="Bottom" Text="Bottom" HeightRequest="70" />
<Button toolkit:DockLayout.DockPosition="Left" Text="Left" WidthRequest="80" />
<Button toolkit:DockLayout.DockPosition="Right" Text="Right" WidthRequest="90" />
<Button Text="Center" />
</toolkit:DockLayout>
</ContentPage>
Per l'ancoraggio a destra a sinistra / , deve essere specificato un oggetto .WidthRequest
Per l'ancoraggio superiore / inferiore, un oggetto HeightRequest
definisce le dimensioni della visualizzazione figlio lungo la direzione di ancoraggio. Le direzioni ortogonali vengono sempre calcolate in modo implicito dal DockLayout
responsabile.
C#
Un DockLayout
oggetto può essere costruito comodamente in C# come illustrato di seguito:
using CommunityToolkit.Maui.Layouts;
var page = new ContentPage
{
Content = new DockLayout
{
{ new Button { Text = "Top", HeightRequest = 50 }, DockPosition.Top },
{ new Button { Text = "Bottom", HeightRequest = 70 }, DockPosition.Bottom },
{ new Button { Text = "Left", WidthRequest = 80 }, DockPosition.Left },
{ new Button { Text = "Right", WidthRequest = 90 }, DockPosition.Right },
{ new Button { Text = "Center" } },
}
};
Nota: DockPosition.None
è il valore predefinito e può essere omesso.
Impostazione della posizione di ancoraggio
Per impostare la posizione di ancoraggio da C#, usare DockLayout.SetDockPosition(IView, DockPosition)
per applicare la proprietà associata DockPosition
.
var button = new Button { Text = "Top", HeightRequest = 50 };
DockLayout.SetDockPosition(button, DockPosition.Top);
Personalizzazione di un DockLayout
Un DockLayout
contenitore supporta proprietà arbitrarie Padding
e diverse DockLayout
proprietà specifiche per la personalizzazione. Di seguito è riportato un esempio in XAML con tutte le opzioni disponibili:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
x:Class="MyProject.MyContentPage">
<toolkit:DockLayout HeightRequest="400"
WidthRequest="600"
Padding="10,20,30,40"
VerticalSpacing="10"
HorizontalSpacing="15"
ShouldExpandLastChild="False">
...
</toolkit:DockLayout>
</ContentPage>
Proprietà
Proprietà | Type | Descrizione |
---|---|---|
Padding |
Thickness |
Ottiene o imposta la spaziatura interna intorno al contenitore di layout (ereditata da Layout ). |
HorizontalSpacing |
double |
Ottiene o imposta la spaziatura orizzontale tra le visualizzazioni ancorate. |
VerticalSpacing |
double |
Ottiene o imposta la spaziatura verticale tra le visualizzazioni ancorate. |
HorizontalSpacing e VerticalSpacing viene applicato tra le visualizzazioni adiacenti in DockLayout . Ad esempio, HorizontalSpacing viene aggiunto tra le visualizzazioni Left, None e Right , ma anche tra le visualizzazioni adiacenti nello stesso DockPosition modo, ad esempio più visualizzazioni ancorate a sinistra. VerticalSpacing viene eseguito il rendering tra le visualizzazioni in pila verticalmente nelle posizioni Top, None e Bottom . |
||
ShouldExpandLastChild |
bool |
Se true, l'ultimo elemento figlio viene espanso per riempire lo spazio rimanente (impostazione predefinita: true ). |
Note aggiuntive
Se DockLayout
viene usato in una posizione con vincoli spaziali (in particolare con una dimensione specificata tramite HeightRequest
o WidthRequest
nel contenitore), la precedenza viene assegnata dall'ordine in cui le visualizzazioni figlio vengono aggiunte al DockLayout
contenitore. Di conseguenza, ogni volta che non è disponibile spazio sufficiente per il rendering di tutte le viste figlio, i figli con priorità più bassa (aggiunti per ultimo) verranno rimossi al rendering. Per questo motivo, è sempre necessario verificare che le dimensioni del contenitore coprono almeno le dimensioni minime di tutte le viste figlio.
Esempi
È possibile trovare un esempio della DockLayout
funzionalità in azione nell'applicazione di esempio .NET MAUI Community Toolkit.
API
È possibile trovare il codice sorgente per DockLayout
over nel repository GitHub di .NET MAUI Community Toolkit in DockLayout e DockLayoutManager.
.NET MAUI Community Toolkit