在我的Xamarin Forms应用程序中,我有多种样式,包括颜色。
的App.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文件中绑定该值吗?
答案 0 :(得分:2)
使用DynamicResource
来自Xamarin documentaion它说:
DynamicResource标记扩展类似于StaticResource 标记扩展,它们都使用字典键来获取值 来自ResourceDictionary。但是,StaticResource执行时 一个字典查找,DynamicResource维护一个链接 字典键。因此,如果与词典条目相关联 更换密钥后,更改将应用于可视元素。这个 允许在应用程序中进行运行时样式更改。
因此您的页面将是:
<ContentPage Title="Menu" BackgroundColor="{DynamicResource primary_colour}">
并且您更改颜色的代码将是:
Application.Current.Resources["primary_colour"] = Color.Green;