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

Xamarin.Forms中XAML使用资源文件遇Texts类型未找到错误

解决Xamarin.Forms XAML中找不到RESX Texts类型的问题

嘿,我之前也踩过这个坑!找不到Texts类型的问题几乎都和命名空间配置、资源文件生成设置有关,咱们一步步来排查:

1. 先检查RESX文件的核心配置(必看!)

打开解决方案资源管理器,找到你的Texts.resx文件,右键选择「属性」,确认两个关键设置:

  • 生成操作:必须设为 Embedded resource
  • 自定义工具:一定要选 PublicResXFileCodeGenerator(默认的ResXFileCodeGenerator生成的是internal类,XAML根本访问不到!)

接着打开自动生成的Texts.Designer.cs文件,顶部的命名空间要记下来,比如namespace MyApp.Resources;,后面XAML引用要用到这个。

2. 在XAML中正确引用资源命名空间

在你的页面根元素(比如ContentPage)里添加命名空间声明,格式如下:

xmlns:resources="clr-namespace:你的资源命名空间;assembly=你的项目程序集名称"

举个实际例子:如果我的资源在MyApp.Resources命名空间,项目叫MyApp,那就是:

xmlns:resources="clr-namespace:MyApp.Resources;assembly=MyApp"

⚠️ 注意:程序集名称就是你的项目名,大小写要完全匹配!

3. 验证Texts类的可访问性

先在C#代码里试试调用Texts.你的资源键,比如var test = Texts.Welcome;:

  • 如果代码里也找不到,那肯定是资源文件生成的问题,回去重新检查第1步的自定义工具和生成操作
  • 如果代码里能访问,那就是XAML的命名空间引用错了,再核对一遍命名空间和程序集名称

4. 清理缓存重建项目

VS有时候会抽风缓存旧文件,试试这几步:

  • 右键解决方案 → 清理解决方案
  • 右键解决方案 → 重建解决方案
  • 实在不行就手动删除项目下的bin和obj文件夹,再重新编译

5. 正确使用资源的示例

假设一切配置正确,XAML里调用资源的写法是这样的:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:resources="clr-namespace:MyApp.Resources;assembly=MyApp"
             x:Class="MyApp.Views.HomePage">
    <!-- 用x:Static绑定资源 -->
    <Label Text="{x:Static resources:Texts.WelcomeMessage}" />
</ContentPage>

按照这个顺序排查,90%的情况都能解决问题!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:49:34