在 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 中找不到“资源”文件的主要内容,如果未能解决你的问题,请参考以下文章
Spring-Boot ResourceLocations 在资源/静态/css 中找不到 css 文件
Visual Studio:在要添加到项目的项目列表中找不到“资源文件”
在 windows phone 8 项目中找不到具有名称/密钥的资源