2017-08-03 23 views
1

私のXamarinフォームアプリケーションでは、色を含む複数のスタイルがあります。App.xamlスタイルで色の値を動的に設定する

App.xaml:

私は他の.xamlのページで使用してい
<prism:PrismApplication.Resources> 
<ResourceDictionary> 
<Color x:Key="primary_colour">#000a3d</Color> 
... 

:私は色の値を変更する方法

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

私の質問は、(#000a3d)Appで.xamlは動的に(それはログインしているクライアントに基づいて異なるでしょう)? App.xaml.csファイルからその値をバインドできますか? Xamarin documentaionから

答えて

2

使用DynamicResourceは、それは言う:

DynamicResourceのマークアップ拡張機能は、その中StaticResource マークアップ拡張機能に似て両方のResourceDictionaryから値 をフェッチする辞書のキーを使用します。ただし、StaticResourceは の辞書検索を実行しますが、DynamicResourceは辞書キー へのリンクを維持します。したがって、 に関連付けられた辞書エントリが置換されると、その変更はビジュアル要素に適用されます。この を使用すると、アプリケーションで実行時スタイルの変更を行うことができます。

そのため、あなたのページは次のようになります。

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

や色を変更するには、あなたのコードは次のようになります。

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

完璧!ありがとうございました。それは正常に動作します。 – 82skynet

関連する問題