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

UWP(Windows 10 IoT)中如何从RESW资源文件直接在视图调用标签值

在UWP中从RESW资源文件直接获取标签值的解决方案

Hey there! 我之前做UWP项目的时候也踩过这个坑——WPF里那套{x:StaticResources}的写法在UWP里确实不通用,不过别担心,有两种常用的方法可以实现你要的效果😎

方法一:用x:Uid实现(UWP官方推荐的本地化方案)

这是UWP里最常用的资源绑定方式,尤其适合本地化场景,能一次性绑定控件的多个属性。

步骤很简单:

  1. 在你的RESW资源文件里,添加一个键值对,键的格式是[控件Uid].[属性名]。比如你按钮的Name是btnUpdate,想要设置它的Content,就加键:btnUpdate.Content,值填你要的标签文本(比如“更新”)。
  2. 在XAML里给按钮加上x:Uid属性,值和键里的控件Uid一致:
<Button x:Uid="btnUpdate" 
        Grid.Column="1" 
        HorizontalAlignment="Center" 
        VerticalAlignment="Center" 
        Name="btnUpdate" 
        Margin="0,200,0,0" 
        MinWidth="300" 
        Command="{Binding add}" />

这样运行的时候,系统会自动从RESW里加载btnUpdate.Content对应的值,填充到按钮的Content属性里。而且如果后续要加ToolTip,只要在RESW里加btnUpdate.ToolTip就行,不用改XAML,非常方便!

方法二:强类型资源(接近WPF的写法)

如果你更习惯WPF里直接引用资源键的方式,可以让RESW生成强类型的资源类,这样就能用类似{x:Static}的写法了。

具体步骤:

  1. 右键你的RESW文件(比如Resources.resw)→ 选择「属性」。
  2. 在属性窗口里,把「Custom Tool」改成MultilingualResourcesCustomTool,「Custom Tool Namespace」设置成你的项目命名空间(比如MyIoTApp.Resources)。
  3. 编译一下项目,系统会自动生成一个和RESW同名的强类型类(比如Resources),里面包含了你定义的所有资源键对应的静态属性。
  4. 在XAML的根元素里添加命名空间引用:
xmlns:res="using:MyIoTApp.Resources"
  1. 然后就可以像WPF那样直接引用资源了:
<Button Content="{x:Static res:Resources.mylabel}" 
        Grid.Column="1" 
        HorizontalAlignment="Center" 
        VerticalAlignment="Center" 
        Name="btnUpdate" 
        Margin="0,200,0,0" 
        MinWidth="300" 
        Command="{Binding add}" />

这里RESW里的键就是mylabel,值是你要的标签文本,和WPF里的资源键写法完全一致。

小提示

  • 不管用哪种方法,都要确保RESW文件的「Build Action」设置为PRIResource(默认就是这个,不用改,但如果出问题可以检查一下)。
  • x:Uid的方式更适合多语言本地化场景,而强类型的写法更贴合WPF开发者的使用习惯,根据你的需求选就行~

内容的提问来源于stack exchange,提问作者Mr. Developer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:30:23