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

如何利用StaticResource将PlatformName资源字符串赋值给Label.Text?

MAUI中通过资源设置Label.Text的实现方式

你给出的代码本身已经正确实现了将PlatformName资源的值绑定到Label.Text的需求,下面拆解逻辑并修正细节:

实现步骤说明

  1. 定义平台专属资源:在Label.Resources节点下,通过OnPlatform创建了名为PlatformName的字符串资源,它会根据当前运行的平台返回对应的文本值
  2. 引用资源到Text属性:使用{StaticResource PlatformName}标记扩展,直接将资源的值赋值给Label.Text,运行时框架会自动解析并显示对应平台的内容

修正后的完整代码

注意原代码中Android的拼写有误(ANdroid),修正后代码如下:

<Label>
    <Label.Resources>
        <OnPlatform x:Key="PlatformName" x:TypeArguments="system:String">
            <On Platform="iOS" Value="[iOS]" />
            <On Platform="Android" Value="[Android]" />
            <On Platform="WinUI" Value="[Windows]" />
            <On Platform="MacCatalyst" Value="[macOS]" />
        </OnPlatform>
    </Label.Resources>
    <Label.Text>{StaticResource PlatformName}</Label.Text>
</Label>

额外提示

  • StaticResource是静态资源引用,在控件加载时就完成资源查找,适合平台信息这类不会动态变化的场景
  • 如果后续需要动态更新资源值,可以改用DynamicResource(动态资源引用),它会监听资源的变化并自动更新UI
  • x:TypeArguments="system:String"明确指定资源类型为字符串,确保和Label.Text的类型匹配,避免潜在的类型转换问题

内容的提问来源于stack exchange,提问作者Program.X

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 18:12:05