2017-08-03 2 views
1

In meiner Xamarin Forms-Anwendung habe ich mehrere Stile einschließlich Farben.Setzen Sie den Farbwert dynamisch in App.xaml Stil

App.xaml:

<prism:PrismApplication.Resources> 
<ResourceDictionary> 
<Color x:Key="primary_colour">#000a3d</Color> 
... 

Was ich auf andere XAML-Seiten bin mit:

<ContentPage Title="Menu" BackgroundColor="{StaticResource primary_colour}"> 

Meine Frage ist, wie kann ich den Farbwert (# 000a3d) in App ändern .xaml dynamisch (es wird je nach angemeldetem Client anders sein)? Kann ich diesen Wert aus der App.xaml.cs-Datei binden?

Antwort

2

Verwendung DynamicResource, von Xamarin documentaion heißt es:

Die Dynamic Markup-Erweiterung, dass auf die Static Markup Erweiterung ähnlich ist sowohl ein Wörterbuch Schlüssel verwenden, um einen Wert von einem Resource zu holen. Während die StaticResource eine einzelne Wörterbuchsuche ausführt, verwaltet die DynamicResource eine Verknüpfung zu der Wörterbuchschlüssel. Wenn der mit verknüpfte Wörterbucheintrag daher ersetzt wird, wird die Änderung auf das visuelle Element angewendet. Diese ermöglicht Laufzeitänderungen in einer Anwendung vorgenommen werden.

Daher wird Ihre Seite sein:

<ContentPage Title="Menu" BackgroundColor="{DynamicResource primary_colour}"> 

und Ihr Code die Farbe zu ändern wäre:

Application.Current.Resources["primary_colour"] = Color.Green; 
+0

perfekt! Danke. es funktioniert OK. – 82skynet

Verwandte Themen