在 wpf 中找不到“资源”文件

Posted

技术标签:

【中文标题】在 wpf 中找不到“资源”文件【英文标题】:Can't find "Resources" file in wpf 【发布时间】:2015-11-09 14:32:23 【问题描述】:

我是 WPF 的新手。 我需要在资源文件 resx 上添加引用并从中获取字符串。

<Window x:Class="SelectObjectsWindow.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:res="clr-namespace:SelectObjectsWindow.Properties"

    Title="x:Static res:Resources.Res1" Height="350" Width="525">
<Grid>
    ....
</Grid>

我收到一个错误:名称空间“clr-namespace:SelectObjectsWindow.Properties”中不存在名称“Resources”。 我正在搜索有关此的信息并找到一些建议: 设置 resx 文件的“public”访问修饰符。 更改“嵌入式资源”上 resx 的 Build Action 属性。

所以,我做到了,但没有任何改变。 我检查了所有命名空间。似乎还可以。 我不知道,我还应该尝试什么。

在 .cs 中我可以做到这一点而不会出错

  var res = Properties.Resources.Res1;

有人知道,有什么问题吗?

【问题讨论】:

如果它设置为公开,它似乎是编译器的假阳性。它编译吗?如果不是,问题不在您的窗口中,而是在其他地方。 (XAML Intellisene/Compiler 有点难以理解) 你找到解决方案了吗? 【参考方案1】:

将访问修饰符从 internal 更改为 public,您的绑定将起作用。

【讨论】:

将您的代码发布到 Dropbox,将查看它。我的窗口显示来自 resx 文件的正确标题。【参考方案2】:

尝试添加一个程序集引用:

xmlns:res="clr-namespace:SelectObjectsWindow.Properties;assembly=[AssemblyName]"

将 [AssemblyName] 替换为您的程序集名称,该名称可以通过右键单击您的项目并选择“属性”找到,转到“应用程序”选项卡并查看程序集名称:

【讨论】:

确保 xaml 指向的类是 Public,然后保存并重新打开解决方案。您能否也显示您要指向的课程。

以上是关于在 wpf 中找不到“资源”文件的主要内容,如果未能解决你的问题,请参考以下文章

从 JUnit 测试用例中找不到资源文件

Spring-Boot ResourceLocations 在资源/静态/css 中找不到 css 文件

Visual Studio:在要添加到项目的项目列表中找不到“资源文件”

在 windows phone 8 项目中找不到具有名称/密钥的资源

在 applicationContext.xml 中找不到 Spring 配置资源

在我设备的文件资源管理器中找不到我的应用数据[关闭]