在 Visual Studio 2022 中,我在 C# WPF 应用程序项目根目录的“Resources”文件夹中创建了一个 Resources.resx 文件。在所有类中,我可以使用
Resources.resourceName
毫无问题地访问存储在该文件中的资源,但不能在 MainWindow 类中访问。每当我尝试仅从 MainWindow.xaml.cs 文件访问资源时,都会收到以下错误:
“CS1061。‘ResourceDictionary’不包含‘resourceName’的定义,并且找不到接受‘ResourceDictionary’类型的第一个参数的可访问扩展方法‘resourceName’(您是否缺少 using 指令或程序集引用?)”
我使用以下代码实例化 Apps.xaml.cs 文件中的 MainWindow 类:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
var mainWindow = new MainWindow();
}
为什么我只在 MainWindow 类中出现上述错误,而在其他类中却没有?
正如@Bilal在评论中建议的那样,解决方案是使用完全限定名称来访问资源:.Resources.resourceName,例如
MyApp.Resources.resourceName
。
这是因为 Resources 属性已经在 Window 类继承的 FrameworkElement 类中定义。