Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pomocí AppThemeObject a AppThemeColor můžete vytvořit prostředky s podporou motivu pro vaši aplikaci, které se automaticky aktualizují při aktualizaci motivu zařízení.
Objekty AppThemeObject a AppThemeColor jsou prostředky rozpoznávající motiv, které usnadní práci s barvami, obrázky a dalšími prostředky, které se musí měnit podle aktuálního motivu aplikace.
Tyto objekty vycházejí z konceptů AppThemeBinding , které jsou k dispozici v rozhraní .NET MAUI, a usnadní práci s těmito typy prostředků v nástroji ResourceDictionary.
Z tohoto důvodu byste tato API měli obvykle používat pomocí rozšíření značek ThemeResource v XAML.
Syntaxe
Zahrnutí oboru názvů XAML
Pokud chcete použít sadu nástrojů v XAML, musíte do stránky nebo zobrazení přidat následující xmlns položky:
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Proto platí následující:
<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>
Bylo by změněno tak, aby zahrnovalo xmlns následující:
<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 je obecný objekt zohledňující motiv, který umožňuje nastavit libovolný objekt object pro vlastnosti Light, Dark a Default. Protože AppThemeObject není striktně typovaný, budou za běhu hodnoty u jednotlivých vlastností vyhodnoceny a převedeny na odpovídající typ.
Varování
Pokud je přetypování neplatné, může dojít k výjimce při běhu.
Následující příklad ukazuje, jak použít AppThemeObject prostřednictvím 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 je specializovaný prvek Color, který zohledňuje motiv a umožňuje nastavit Color pro vlastnosti Light, Dark a Default.
Následující příklad ukazuje, jak použít AppThemeColor prostřednictvím 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>
Využívání AppThemeColor a AppThemeResource prostřednictvím stylů
Protože tyto prostředky zohledňující motiv můžeme používat v ResourceDictionary, znamená to, že je můžeme také používat prostřednictvím Style.
Následující příklad ukazuje, jak používat AppThemeColor prostřednictvím 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>
Rozšiřitelnost
Obě AppThemeObject a AppThemeColor dědí z abstraktní třídy AppThemeObject<T>. Pokud potřebujete striktněji typovaný prostředek, který není v .NET MAUI Community Toolkit k dispozici, můžete vytvořit vlastní odvozenou třídu.
Vlastnosti
Následující tabulka popisuje vlastnosti pro AppThemeObject a AppThemeColor. Pro AppThemeColor, typy každé vlastnosti budou Color místo object.
| Vlastnost | Typ | Popis |
|---|---|---|
| Tmavý | object |
Hodnota použitá u vlastnosti, na kterou se tento prostředek použije, když aplikace používá tmavý motiv. |
| Výchozí | object |
Hodnota použitá u vlastnosti, na kterou se tento prostředek použije, když aplikace používá světlý nebo tmavý motiv a pro odpovídající vlastnost tohoto motivu není zadaná žádná hodnota. |
| Světlý režim | object |
Hodnota použitá u vlastnosti, na kterou se tento prostředek použije, když aplikace použije světlý motiv. |
Příklady
Ukázku použití AppThemeResource najdete v ukázkové aplikaci .NET MAUI Community Toolkit.
API
Zdrojový kód AppThemeResource najdete v úložišti .NET MAUI Community Toolkit na GitHubu.
.NET MAUI Community Toolkit