Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DockLayout to układ, w którym widoki można dokować do boków kontenera układu.
Na poniższej ilustracji przedstawiono sposób, w jaki struktura DockLayout koncepcyjnie jest ustrukturyzowana. Widoki podrzędne są zadokowane do jednej z 4 możliwych pozycji dokowania: U góry, U dołu, Po lewej lub Po prawej (odpowiednio DockPosition.Top, DockPosition.Bottom, DockPosition.Left i DockPosition.Right). Widoki, które nie są jawnie zadokowane (lub z użyciem DockPosition.None), są wyświetlane na środku (lub między pozycjami Góra / Dół oraz Lewo / Prawo).
Tworzenie elementu DockLayout
W poniższych sekcjach opisano sposób używania elementu DockLayout w językach C# i XAML.
XAML
Dołączanie przestrzeni nazw XAML
Aby można było używać zestawu narzędzi w języku XAML, należy dodać następujące xmlns elementy do strony lub widoku:
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Zatem następujące:
<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>
Zostanie zmodyfikowana w celu uwzględnienia xmlns w następujący sposób:
<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>
Korzystanie z elementu DockLayout
Podstawowy element DockLayout można utworzyć w języku XAML, jak pokazano tutaj:
<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>
W przypadku dokowania do lewej / /prawej strony należy określić WidthRequest. W przypadku dokowania do góry / i do dołuHeightRequestwymiar określa rozmiar widoku podrzędnego wzdłuż kierunku dokowania. Kierunki ortogonalne są zawsze obliczane niejawnie przez DockLayout menedżera.
C#
Obiekt DockLayout można utworzyć wygodnie w języku C#, jak pokazano poniżej:
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" } },
}
};
Uwaga: DockPosition.None jest wartością domyślną i można jej pominąć.
Ustawianie położenia docka
Aby ustawić pozycję dokowania w języku C#, użyj DockLayout.SetDockPosition(IView, DockPosition), aby zastosować właściwość dołączaną DockPosition.
var button = new Button { Text = "Top", HeightRequest = 50 };
DockLayout.SetDockPosition(button, DockPosition.Top);
Dostosowywanie elementu DockLayout
Kontener DockLayout obsługuje dowolne Padding, a także kilka właściwości specyficznych dla DockLayout, umożliwiających dostosowywanie. Przykład w języku XAML ze wszystkimi dostępnymi opcjami podano tutaj:
<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>
Właściwości
| Majątek | Typ | Description |
|---|---|---|
Padding |
Thickness |
Pobiera lub ustawia margines wewnętrzny wokół kontenera układu (dziedziczony z elementu Layout). |
HorizontalSpacing |
double |
Pobiera lub ustawia odstęp w poziomie między zadokowanymi widokami. |
VerticalSpacing |
double |
Pobiera lub ustawia pionowy odstęp między zadokowanymi widokami. |
HorizontalSpacing i VerticalSpacing są stosowane między sąsiednimi widokami w DockLayout. Na przykład HorizontalSpacing dodaje się między widokami Lewy, Brak i Prawy, ale także między sąsiednimi widokami w ramach tego samego DockPosition, na przykład gdy wiele widoków jest zadokowanych po stronie Lewy.
VerticalSpacing jest wyświetlany między ułożonymi pionowo widokami w pozycjach Góra, Brak i Dół. |
||
ShouldExpandLastChild |
bool |
Jeśli ustawiono wartość true, ostatni element podrzędny zostanie rozszerzony, aby wypełnić pozostałą przestrzeń (ustawienie domyślne: true). |
Dodatkowe uwagi
Jeśli DockLayout jest używane w miejscu o ograniczonej przestrzeni (zwłaszcza gdy rozmiar kontenera określono za pomocą HeightRequest lub WidthRequest), o pierwszeństwie decyduje kolejność, w jakiej widoki potomne są dodawane do kontenera DockLayout. W związku z tym za każdym razem, gdy nie ma wystarczającej ilości miejsca na renderowanie wszystkich widoków podrzędnych, podrzędne o najniższym priorytecie (które zostały dodane ostatnio) zostaną usunięte po renderowaniu. Z tego powodu należy zawsze sprawdzić, czy rozmiar kontenera jest co najmniej równy minimalnemu rozmiarowi wszystkich jego widoków podrzędnych.
Examples
Przykład działania funkcji DockLayout można znaleźć w przykładowej aplikacji .NET MAUI Community Toolkit.
API
Kod źródłowy DockLayout można znaleźć w repozytorium .NET MAUI Community Toolkit GitHub w DockLayout i DockLayoutManager.
.NET MAUI Community Toolkit