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

如何在MAUI XAML中通过已有颜色资源定义新颜色?

问题原因与解决方案

问题出在哪?

你尝试的两种写法都不符合MAUI XAML中定义颜色资源的逻辑:

  1. 第一种写法 <Color x:Key="FgColorDarkMode">{StaticResource Gray950}</Color>:XAML解析器会把{StaticResource Gray950}当作纯字符串处理,试图将这个字符串直接转换为Color类型,显然无法完成转换,所以抛出XFC0040错误。
  2. 第二种写法 <Color x:Key="FgColorLightMode" Color="{StaticResource Gray950}"/>:Color元素本身并没有名为Color的可绑定属性,MAUI的Color元素是通过标签内容直接设置颜色值的,这种写法本身就不合法。

而控件的TextColor/BackgroundColor等属性属于可绑定属性,它们支持直接接收StaticResource返回的Color对象,所以能正常工作。

正确的写法

不需要用Color标签包裹,直接在资源字典中通过StaticResource引用已有颜色资源即可:

<StaticResource x:Key="FgColorDarkMode" ResourceKey="Gray950" />
<StaticResource x:Key="FgColorLightMode" ResourceKey="Gray950" />

这样定义的FgColorDarkMode和FgColorLightMode会直接复用Gray950对应的颜色值,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 12:21:02