Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
DockLayout ist ein Layout, in dem Ansichten an den Seiten des Layoutcontainers verankert werden können.
Die folgende Abbildung zeigt, wie eine DockLayout konzeptionell strukturiert ist. Untergeordnete Ansichten sind an einer von vier möglichen Andockpositionen angedockt: Oben, Unten, Links oder Rechts (entspricht DockPosition.Top, DockPosition.Bottom, DockPosition.Left und DockPosition.Right). Ansichten, die nicht explizit angedockt sind (oder mit DockPosition.None versehen), werden in der Mitte angezeigt (oder zwischen den Positionen Oben / Unten sowie Links / Rechts).
Ein Dock-Layout erstellen
In den folgenden Abschnitten wird beschrieben, wie Sie eine DockLayout in C# und XAML verwenden.
XAML
Einbinden des XAML-Namespace
Um das Toolkit in XAML verwenden zu können, muss der folgende xmlns-Abschnitt zu Ihrer Seite oder Ansicht hinzugefügt werden:
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Daher das Folgende:
<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>
Würde geändert werden, um das xmlns wie folgt einzubinden:
<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>
Verwendung von DockLayout
Eine grundlegende DockLayout Datei kann in XAML erstellt werden, wie hier gezeigt:
<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>
Für das Andocken von links / rechts sollte ein WidthRequest Wert angegeben werden. Beim Andocken oben / unten wird die Größe der untergeordneten Ansicht entlang der Andockrichtung durch HeightRequest definiert. Die orthogonalen Richtungen werden immer implizit vom DockLayout Manager berechnet.
C#
Eine DockLayout kann bequem in C# erstellt werden, wie hier gezeigt:
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" } },
}
};
Hinweis: DockPosition.None ist der Standardwert und kann weggelassen werden.
Festlegen der Dockposition
Um die Andockposition in C# festzulegen, verwenden Sie DockLayout.SetDockPosition(IView, DockPosition), um die Attached-Eigenschaft DockPosition anzuwenden.
var button = new Button { Text = "Top", HeightRequest = 50 };
DockLayout.SetDockPosition(button, DockPosition.Top);
Anpassen eines DockLayouts
Ein DockLayout Container unterstützt beliebige Padding und mehrere DockLayoutspezifische Eigenschaften für die Anpassung. Hier finden Sie ein Beispiel in XAML mit allen verfügbaren Optionen:
<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>
Eigenschaften
| Eigentum | Typ | Beschreibung |
|---|---|---|
Padding |
Thickness |
Dient zum Abrufen oder Festlegen des Abstands um den Layoutcontainer (geerbt von Layout). |
HorizontalSpacing |
double |
Dient zum Abrufen oder Festlegen des horizontalen Abstands zwischen angedockten Ansichten. |
VerticalSpacing |
double |
Dient zum Abrufen oder Festlegen des vertikalen Abstands zwischen angedockten Ansichten. |
HorizontalSpacing und VerticalSpacing werden zwischen benachbarten Ansichten in der DockLayout angewendet. Beispielsweise wird HorizontalSpacing zwischen den Ansichten Links, Keine und Rechts eingefügt, aber auch zwischen benachbarten Ansichten in derselben DockPosition, etwa wenn mehrere Ansichten an Links angedockt sind.
VerticalSpacing wird zwischen vertikal gestapelten Ansichten an den Positionen Oben, Keine und Unten gerendert. |
||
ShouldExpandLastChild |
bool |
Wenn der Wert true ist, wird das letzte Kindelement so erweitert, dass es den verbleibenden Platz einnimmt (Standard: true). |
Weitere Hinweise
Wenn DockLayout in einem räumlich begrenzten Bereich verwendet wird (insbesondere wenn für den Container über HeightRequest oder WidthRequest eine Größe angegeben ist), richtet sich die Priorität nach der Reihenfolge, in der die untergeordneten Ansichten dem Container DockLayout hinzugefügt werden. Folglich werden, wenn nicht genügend Platz vorhanden ist, um alle untergeordneten Ansichten zu rendern, die untergeordneten Ansichten mit der niedrigsten Priorität (die zuletzt hinzugefügt wurden) beim Rendern entfernt. Aus diesem Grund sollten Sie immer überprüfen, ob die Größe des Containers mindestens die Mindestgröße aller untergeordneten Ansichten abdeckt.
Beispiele
Sie finden ein Beispiel für das Feature DockLayout in Aktion in der .NET MAUI Community Toolkit-Beispielanwendung.
API
Sie finden den Quellcode für DockLayout im .NET MAUI Community Toolkit GitHub Repository in DockLayout und DockLayoutManager.
.NET MAUI Community Toolkit