Aracılığıyla paylaş


AppTheme Kaynakları

ve AppThemeColor ileAppThemeObject, cihazınız için cihaz teması güncelleştirildiğinde otomatik olarak güncelleştirilen tema kullanan kaynaklar oluşturabilirsiniz.

AppThemeObject ve AppThemeColor nesneleri, uygulamanın geçerli temasına bağlı olarak değiştirilmesi gereken renkler, resimler ve diğer kaynaklarla çalışmayı kolaylaştıran tema kullanan kaynaklardır. Bu nesneler .NET MAUI'de bulunan kavramları AppThemeBinding temel alır ve içindeki bu tür kaynaklarla ResourceDictionaryçalışmayı kolaylaştırır.

Bu nedenle, bu API'leri genellikle XAML'deki ThemeResource işaretleme uzantısı aracılığıyla kullanmanız gerekir.

Sözdizimi

XAML ad alanını dahil edin

Araç setini XAML'de kullanmak için sayfanıza veya görünümünüzde aşağıdakilerin xmlns eklenmesi gerekir:

xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"

Bu nedenle aşağıdakiler:

<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>

aşağıdakiler dahil xmlns edilecek şekilde değiştirilir:

<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, ve Default özellikleri için LightDark herhangi object bir ayar yapmanızı sağlayan genel bir tema kullanan nesnedir. AppThemeObject Türü kesin olarak belirtilmemiş olduğundan, çalışma zamanında her özelliğin değerleri değerlendirilir ve dönüştürülür.

Uyarı

Atama geçersizse, bu bir çalışma zamanı özel durumuyla sonuçlanabilir.

Aşağıdaki örnekte, aracılığıyla nasıl kullanılacağı AppThemeObject gösterilmektedir 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

, ve Default özellikleri için Dark Lightbir ayarlamanıza olanak tanıyan özel bir Color temadırColor.AppThemeColor

Aşağıdaki örnekte, aracılığıyla nasıl kullanılacağı AppThemeColor gösterilmektedir 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>

Stiller Aracılığıyla AppThemeColor ve AppThemeResource Kullanma

Bu tema kullanan kaynakları içinde ResourceDictionarykullanabildiğimiz için, bu kaynakları bir Stylearacılığıyla da kullanabileceğimiz anlamına gelir.

Aşağıdaki örnekte, aracılığıyla nasıl kullanılacağı AppThemeColor gösterilmektedir 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>

Genişletilebilirlik

AppThemeColor Hem hem de AppThemeObject soyut sınıfından AppThemeObject<T>devralın. .NET MAUI Community Toolkit'te bulunmayan daha kesin türe sahip bir kaynağa ihtiyacınız varsa kendi devralmanızı oluşturabilirsiniz.

Properties

Aşağıdaki tabloda ve AppThemeColoriçin özellikleri AppThemeObject açıklanmaktadır. içinAppThemeColor, her özelliğin türleri yerine objectolurColor.

Özellik Türü Açıklama
Koyu object Uygulama koyu temayı kullandığında bu kaynağın uygulandığı özelliğe uygulanan değer.
Varsayılan object Uygulama açık veya koyu temayı kullandığında ve bu temanın ilgili özelliği için herhangi bir değer sağlandığında bu kaynağın uygulandığı özelliğe uygulanan değer.
Açık object Uygulama ışık temasını kullandığında bu kaynağın uygulandığı özelliğe uygulanan değer.

Örnekler

.NET MAUI Community Toolkit Örnek Uygulaması'nda bunun bir örneğini AppThemeResource iş başında bulabilirsiniz.

API

üzerinde için AppThemeResource kaynak kodunu .NET MAUI Community Toolkit GitHub deposunda bulabilirsiniz.