AppTheme 리소스
AppThemeColor
함께 AppThemeObject
디바이스 테마가 업데이트되면 자동으로 업데이트되는 애플리케이션에 대한 테마 인식 리소스를 만들 수 있습니다.
및 AppThemeColor
개체는 AppThemeObject
앱의 현재 테마에 따라 변경해야 하는 색, 이미지 및 기타 리소스를 더 쉽게 사용할 수 있도록 하는 테마 인식 리소스입니다.
이러한 개체는 .NET MAUI에서 사용할 수 있는 개념을 AppThemeBinding
기반으로 하며, 이러한 유형의 리소스를 더 쉽게 사용할 수 있도록 합니다 ResourceDictionary
.
따라서 일반적으로 XAML의 태그 확장을 통해 ThemeResource
이러한 API를 사용해야 합니다.
구문
XAML 네임스페이스 포함
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>
AppThemeResource
이 AppThemeObject
개체는 및 속성에 대해 Light
Dark
Default
설정할 object
수 있는 제네릭 테마 인식 개체입니다. 강력한 형식이 아니므로 AppThemeObject
런타임에 각 속성의 값이 계산되고 캐스팅됩니다.
Warning
캐스트가 유효하지 않으면 런타임 예외가 발생할 수 있습니다.
다음 예제에서는 다음을 통해 사용하는 AppThemeObject
방법을 보여줍니다.ResourceDictionary
<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.Resources>
<toolkit:AppThemeObject Light="dark.png" Dark="light.png" x:Key="MyImageSource" />
</ContentPage.Resources>
<VerticalStackLayout>
<Image Source="{toolkit:AppThemeResource MyImageSource}" />
</VerticalStackLayout>
</ContentPage>
AppThemeColor
이 AppThemeColor
속성은 특수 테마 인식 Color
으로, Dark
해당 속성에 Default
대해 Light
설정할 Color
수 있습니다.
다음 예제에서는 다음을 통해 사용하는 AppThemeColor
방법을 보여줍니다.ResourceDictionary
<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.Resources>
<toolkit:AppThemeColor Light="Red" Dark="Green" x:Key="LabelTextColor" />
</ContentPage.Resources>
<VerticalStackLayout>
<Label TextColor="{toolkit:AppThemeResource LabelTextColor}" />
</VerticalStackLayout>
</ContentPage>
스타일을 통해 AppThemeColor 및 AppThemeResource 사용
이러한 테마 인식 리소스를 사용할 ResourceDictionary
수 있으므로 이를 통해 Style
서도 사용할 수 있습니다.
다음 예제에서는 다음을 통해 사용하는 AppThemeColor
방법을 보여줍니다.Style
<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.Resources>
<toolkit:AppThemeColor Light="Red" Dark="Green" x:Key="LabelTextColor" />
<Style x:Key="Headline" TargetType="Label">
<Setter Property="FontFamily" Value="Segoe UI" />
<Setter Property="FontSize" Value="10" />
<Setter Property="TextColor" Value="{toolkit:AppThemeResource LabelTextColor}" />
</Style>
</ContentPage.Resources>
<VerticalStackLayout>
<Label Style="{StaticResource Headline}" />
</VerticalStackLayout>
</ContentPage>
확장성
둘 다 AppThemeObject
추 AppThemeColor
상 클래스 AppThemeObject<T>
에서 상속합니다. .NET MAUI 커뮤니티 도구 키트에서 사용할 수 없는 보다 강력한 형식의 리소스가 필요한 경우 고유한 상속을 만들 수 있습니다.
속성
아래 표에서는 및 에 대한 AppThemeObject
속성을 설명합니다 AppThemeColor
. 의 경우 AppThemeColor
각 속성의 형식은 Color
object
.
속성 | Type | 설명 |
---|---|---|
어둡게 | object |
앱에서 어두운 테마를 사용할 때 이 리소스가 적용되는 속성에 적용되는 값입니다. |
기본값 | object |
앱에서 밝은 테마 또는 어두운 테마를 사용하고 해당 테마의 해당 속성에 대해 제공된 값이 없는 경우 이 리소스가 적용되는 속성에 적용되는 값입니다. |
밝게 | object |
앱에서 밝은 테마를 사용할 때 이 리소스가 적용되는 속성에 적용되는 값입니다. |
예제
.NET MAUI 커뮤니티 도구 키트 샘플 애플리케이션에서 작동 중인 AppThemeResource
예제를 찾을 수 있습니다.
API
.NET MAUI 커뮤니티 도구 키트 GitHub 리포지토리에서 오버에 대한 AppThemeResource
소스 코드를 찾을 수 있습니다.
.NET MAUI Community Toolkit
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기