Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit AppThemeObject und AppThemeColor können Sie designfähige Ressourcen für Ihre Anwendung erstellen, die automatisch aktualisiert werden, wenn das Gerätedesign aktualisiert wird.
Die AppThemeObject- und AppThemeColor-Objekte sind designabhängige Ressourcen, die die Arbeit mit Farben, Bildern und anderen Ressourcen erleichtern, die sich je nach aktuellem Design der App ändern.
Diese Objekte basieren auf den Konzepten des in .NET MAUI verfügbaren AppThemeBinding und erleichtern die Arbeit mit diesen Ressourcentypen in einer ResourceDictionary.
Aus diesem Grund sollten Sie diese APIs in der Regel über die ThemeResource-Markuperweiterung in XAML verwenden.
Syntax
Einbinden des XAML-Namespace
Um das Toolkit in XAML verwenden zu können, muss der folgende xmlns-Abschnitt zu Ihrer Seite oder Ansicht hinzugefügt werden:
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Daher Folgendes:
<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>
Würde geändert werden, um xmlns wie folgt einzufügen:
<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
Das AppThemeObject ist ein generisches designabhängiges Objekt, mit dem Sie für die Light-, Dark- und Default-Eigenschaften ein beliebiges object festlegen können. Da AppThemeObject nicht stark typisiert ist, werden die Werte für jede Eigenschaft zur Laufzeit ausgewertet und typkonvertiert.
Warnung
Wenn die Umwandlung ungültig ist, kann dies zu einer Runtime-Ausnahme führen.
Das folgende Beispiel zeigt, wie Sie AppThemeObject über eine ResourceDictionary verwenden:
<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
Die AppThemeColor ist eine spezialisierte designabhängige Color, mit der Sie eine Color für die Light-, Dark- und Default-Eigenschaften festlegen können.
Das folgende Beispiel zeigt, wie Sie AppThemeColor über eine ResourceDictionary verwenden:
<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>
Verwenden von AppThemeColor und AppThemeResource mittels Stilen
Da wir diese designfähigen Ressourcen in einer ResourceDictionary verwenden können, bedeutet dies, dass wir sie auch über eine Style konsumieren können.
Das folgende Beispiel zeigt, wie Sie AppThemeColor über eine Style verwenden:
<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>
Erweiterbarkeit
Sowohl AppThemeObject als auch AppThemeColor erben von der abstrakten Klasse AppThemeObject<T>. Wenn Sie eine stärker typierte Ressource benötigen, die im .NET MAUI Community Toolkit nicht verfügbar ist, können Sie eine eigene Vererbung erstellen.
Eigenschaften
In der folgenden Tabelle werden die Eigenschaften für AppThemeObject und AppThemeColor beschrieben. Für AppThemeColor werden die Typen jeder Eigenschaft Color anstelle von object sein.
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
| Dunkel | object |
Der Wert, der auf die Eigenschaft angewendet wird, auf die diese Ressource angewendet wird, wenn die App das dunkle Design verwendet. |
| Voreinstellung | object |
Der Wert, der auf die Eigenschaft angewendet wird, für die diese Ressource gilt, wenn die App das helle oder dunkle Designschema verwendet und für die entsprechende Eigenschaft dieses Designschemas kein Wert festgelegt ist. |
| Hell | object |
Der Wert, der auf die Eigenschaft angewendet wird, auf die diese Ressource angewendet wird, wenn die App das helle Design verwendet. |
Beispiele
Ein konkretes Beispiel für AppThemeResource in Aktion finden Sie in der Beispielanwendung für das .NET MAUI Community Toolkit.
API
Sie finden den Quellcode für AppThemeResource über das GitHub-Repository für das .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit