You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改App.Current.Resources中DynamicResource后TextColor不生效求助

问题原因

  • Preferences存取键不匹配。你在Preferences.Set时使用的键是defaultTextColor,但Preferences.Get时使用的键是TextColor,二者不一致导致每次读取到的都是默认色值#141000,你存储的#ffcc00根本没有被取出使用。
  • 资源类型不匹配。你在App.xaml中定义的defaultTextColor是Color类型,但你直接将字符串格式的十六进制色值赋值给该资源,动态资源绑定无法自动完成字符串到Color类型的转换,因此颜色更新不生效。

你原有Style中使用{DynamicResource defaultTextColor}绑定的逻辑是正确的,不需要调整,只需修改后台代码即可。

修复后的代码

private void Button_Clicked_3(object sender, EventArgs e)
{
    int value = Convert.ToInt32(Labeltest3.Text);
    Preferences.Set("FontSize", value);
    App.Current.Resources["defaultFontSize"] = Preferences.Get("FontSize", 14);
    
    // 统一存取使用的Key
    Preferences.Set("defaultTextColor", "#ffcc00");
    // 取出字符串色值后转换为Color类型再赋值给资源
    var colorHex = Preferences.Get("defaultTextColor", "#141000");
    App.Current.Resources["defaultTextColor"] = Color.FromHex(colorHex);
}

内容的提问来源于stack exchange,提问作者Bas H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:06:04