首页 > 解决方案 > 更改资源的颜色

问题描述

我在我的项目中创建了一个资源,如下所示:

<ContentPage.Resources>
    <ResourceDictionary>
        <Color x:Key="BgColor">#FFFFFF</Color>
    </ResourceDictionary>
</ContentPage.Resources>

 <RelativeLayout x:Name="Layout" BackgroundColor="{x:DynamicResource BgColor}">

当我尝试改变资源的颜色时,理论上它应该改变背景颜色,但它不会发生

private void SwitchTheme_Toggled(object sender, ToggledEventArgs e)
{
     App.Current.Resources["BgColor"] = "#282928";
}

标签: c#xamlxamarin.forms

解决方案


当我尝试改变资源的颜色时,理论上它应该改变背景颜色,但它不会发生。

您可以尝试以下代码:

  <ContentPage.Resources>
    <Color x:Key="BgColor">red</Color>
</ContentPage.Resources>

  private void btn1_Clicked(object sender, EventArgs e)
    {
        //Resources["BgColor"] = Color.FromHex("#F15A29"); or using
        //Resources["BgColor"] = Color.Green; or using
        Resources["BgColor"] = "#282928";         
    }

如果您在 App.xaml 中创建 ResourceDictionary,则可以 Application.Current.Resources["BgColor"]正常使用它。


推荐阅读