![](/img/trans.png)
[英]Dynamically changing value of a property specified in a style in app.xaml
[英]Set color value dynamically in App.xaml style
在我的 Xamarin Forms 應用程序中,我有多種樣式,包括顏色。
應用程序.xaml:
<prism:PrismApplication.Resources>
<ResourceDictionary>
<Color x:Key="primary_colour">#000a3d</Color>
...
我在其他 .xaml 頁面上使用的:
<ContentPage Title="Menu" BackgroundColor="{StaticResource primary_colour}">
我的問題是,如何動態更改 App.xaml 中的顏色值 (#000a3d)(根據登錄的客戶端會有所不同)? 我可以從 App.xaml.cs 文件綁定該值嗎?
使用DynamicResource
,來自Xamarin 文檔,它說:
DynamicResource 標記擴展類似於 StaticResource 標記擴展,兩者都使用字典鍵從 ResourceDictionary 獲取值。 然而,當 StaticResource 執行單個字典查找時,DynamicResource 維護到字典鍵的鏈接。 因此,如果與鍵關聯的字典條目被替換,則更改將應用於視覺元素。 這允許在應用程序中進行運行時樣式更改。
因此,您的頁面將是:
<ContentPage Title="Menu" BackgroundColor="{DynamicResource primary_colour}">
並且您更改顏色的代碼將是:
Application.Current.Resources["primary_colour"] = Color.Green;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.