다음을 통해 공유


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 개체는 및 속성에 대해 LightDarkDefault 설정할 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>

확장성

둘 다 AppThemeObjectAppThemeColor 상 클래스 AppThemeObject<T>에서 상속합니다. .NET MAUI 커뮤니티 도구 키트에서 사용할 수 없는 보다 강력한 형식의 리소스가 필요한 경우 고유한 상속을 만들 수 있습니다.

속성

아래 표에서는 및 에 대한 AppThemeObject 속성을 설명합니다 AppThemeColor. 의 경우 AppThemeColor각 속성의 형식은 Colorobject.

속성 Type 설명
어둡게 object 앱에서 어두운 테마를 사용할 때 이 리소스가 적용되는 속성에 적용되는 값입니다.
기본값 object 앱에서 밝은 테마 또는 어두운 테마를 사용하고 해당 테마의 해당 속성에 대해 제공된 값이 없는 경우 이 리소스가 적용되는 속성에 적용되는 값입니다.
밝게 object 앱에서 밝은 테마를 사용할 때 이 리소스가 적용되는 속성에 적용되는 값입니다.

예제

.NET MAUI 커뮤니티 도구 키트 샘플 애플리케이션에서 작동 중인 AppThemeResource 예제를 찾을 수 있습니다.

API

.NET MAUI 커뮤니티 도구 키트 GitHub 리포지토리에서 오버에 대한 AppThemeResource 소스 코드를 찾을 수 있습니다.