c# - 更改资源的颜色
问题描述
我在我的项目中创建了一个资源,如下所示:
<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";
}
解决方案
当我尝试改变资源的颜色时,理论上它应该改变背景颜色,但它不会发生。
您可以尝试以下代码:
<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"]
正常使用它。
推荐阅读
- java - 错误 org.hibernate.util.JDBCExceptionReporter - ORA-02291:违反完整性约束 (PERFMGMT.ZAUTOMATION_PHASE_FK1) - 未找到父键
- ios - 为 iOS 构建,但在为 iOS 模拟器构建的 dylib 文件中链接
- python - 检查是否至少一列包含熊猫中的字符串
- python - 有没有办法将 SQL 表中的文本与 case 语句结合起来
- r - CRAN 提交中包含的文件和目录
- javascript - 如何从 CKEditor 5 捕获外部事件?
- android - 如何插入 FFI 功能的完成百分比?
- javascript - 如何添加linkedin个人资料徽章以响应应用程序
- reactjs - Cypress open-ct 和 run-ct 破坏了我的 CPU
- dart - 为什么在检查可空性的 if 语句的范围内仍然可以将可空值视为可空值?