학습
모듈
.NET MAUI XAML 페이지에서 레이아웃 사용자 지정 - Training
StackLayout 및 Grid를 사용하여 여러 디바이스에서 일관적인 사용자 인터페이스를 만듭니다.
DockLayout
는 레이아웃 컨테이너의 측면에 뷰를 도킹할 수 있는 레이아웃입니다.
아래 이미지는 개념적으로 구조화되는 방법을 DockLayout
보여줍니다. 자식 보기는 위쪽, 아래쪽, 왼쪽 또는 오른쪽(DockPosition.Top
, , DockPosition.Bottom
DockPosition.Left
및DockPosition.Right
)의 4가지 가능한 도킹 위치 중 하나에 도킹됩니다. 명시적으로 도킹되지 않은 보기(또는 포함DockPosition.None
)는 가운데(또는 위쪽 / 아래쪽 및 왼쪽 / 오른쪽 위치) 사이에 표시됩니다.
다음 섹션에서는 C# 및 XAML 모두에서 사용하는 DockLayout
방법을 설명합니다.
XAML에서 도구 키트를 사용하려면 페이지 또는 보기에 다음 xmlns
을 추가해야 합니다.
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
따라서 다음을 수행합니다.
<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>
다음과 같이 포함 xmlns
하도록 수정됩니다.
<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>
다음과 같이 XAML에서 기본 DockLayout
을 만들 수 있습니다.
<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>
왼쪽 / 오른쪽 도킹의 경우 a를 WidthRequest
지정해야 합니다. 위쪽 / 아래쪽 도킹의 HeightRequest
경우 도킹 방향을 따라 자식 보기의 크기를 정의합니다. 직교 방향은 항상 관리자가 암시적으로 계산합니다 DockLayout
.
A는 DockLayout
다음과 같이 C#에서 편리하게 생성할 수 있습니다.
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" } },
}
};
참고: DockPosition.None
기본값이며 생략할 수 있습니다.
C#에서 도킹 위치를 설정하려면 연결된 DockPosition
속성을 적용하는 데 사용합니다DockLayout.SetDockPosition(IView, DockPosition)
.
var button = new Button { Text = "Top", HeightRequest = 50 };
DockLayout.SetDockPosition(button, DockPosition.Top);
컨테이너는 DockLayout
사용자 지정을 위해 임의 Padding
속성과 몇 가지 DockLayout
특정 속성을 지원합니다. 사용 가능한 모든 옵션이 포함된 XAML의 예제는 다음과 같습니다.
<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>
속성 | Type | 설명 |
---|---|---|
Padding |
Thickness |
레이아웃 컨테이너(상속됨)의 안쪽 여백을 Layout 가져오거나 설정합니다. |
HorizontalSpacing |
double |
도킹된 뷰 사이의 가로 간격을 가져오거나 설정합니다. |
VerticalSpacing |
double |
도킹된 뷰 간의 세로 간격을 가져오거나 설정합니다. |
HorizontalSpacing 의 VerticalSpacing 인접 보기 사이에 적용됩니다 DockLayout . 예를 들어 왼쪽, HorizontalSpacing 없음 및 오른쪽 보기 사이에 추가되지만 왼쪽에 DockPosition 도킹된 여러 보기와 같은 인접 보기 사이에도 추가됩니다. VerticalSpacing 는 위쪽, 없음 및 아래쪽 위치의 세로로 누적 보기 간에 렌더링됩니다. |
||
ShouldExpandLastChild |
bool |
true이면 마지막 자식이 다시 기본 공간을 채우도록 확장됩니다(기본값: true ). |
공간적으로 제한된 위치(특히 컨테이너를 통해 HeightRequest
또는 WidthRequest
컨테이너에 지정된 크기)에서 사용되는 경우 DockLayout
자식 뷰가 컨테이너에 추가되는 순서에 따라 우선 순위가 DockLayout
지정됩니다. 따라서 모든 자식 보기를 렌더링할 공간이 부족할 때마다 렌더링 시 가장 낮은 우선 순위 자식(마지막으로 추가된 자식)이 제거됩니다. 이러한 이유로 컨테이너의 크기가 모든 자식 보기의 최소 크기를 포함하는지 항상 검사 합니다.
.NET MAUI 커뮤니티 도구 키트 샘플 애플리케이션에서 작동 중인 기능의 DockLayout
예를 찾을 수 있습니다.
DockLayout 및 DockLayoutManager의 .NET MAUI 커뮤니티 도구 키트 GitHub 리포지토리에서 오버에 대한 DockLayout
소스 코드를 찾을 수 있습니다.
.NET MAUI Community Toolkit 피드백
.NET MAUI Community Toolkit은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.
학습
모듈
.NET MAUI XAML 페이지에서 레이아웃 사용자 지정 - Training
StackLayout 및 Grid를 사용하여 여러 디바이스에서 일관적인 사용자 인터페이스를 만듭니다.
설명서
UniformItemsLayout - .NET MAUI 커뮤니티 도구 키트 - Community Toolkits for .NET
UniformItemsLayout은 모든 행과 열의 크기가 같은 레이아웃입니다.
Android NavigationBar - .NET MAUI 커뮤니티 도구 키트 - Community Toolkits for .NET
NavigationBar는 Android 플랫폼에서 탐색 모음의 모양을 사용자 지정하는 기능을 제공합니다.
StateContainer - .NET MAUI 커뮤니티 도구 키트 - Community Toolkits for .NET
StateContainer 바인딩 가능 속성을 사용하면 레이아웃 파생 요소가 상태 인식이 될 수 있습니다.