.net - Application.LoadComponent 找不到资源

标签 .net wpf resources

我的项目中有一个 xaml 文件,地址为 Ns1\Ns2\myfile.xaml .它的构建操作设置为 Page,使用 MSBuild:Compile 自定义工具。我正在尝试在静态构造函数中加载此文件:

namespace Ns1.Ns2 {
    internal class MyClass {
        static() {
            var obj = Application.LoadComponent(new Uri("/myfile.xaml", UriKind.Relative));
        }
    }
}

但是,当我尝试运行此代码时,它失败并出现异常 cannot locate resource 'myfile.xaml' .如果我将 URI 更改为绝对 URI:
var obj = Application.LoadComponent(new Uri("pack://application:,,,/ns1/ns2/myfile.xaml", UriKind.Absolute));

它失败了 Cannot use absolute URI .如果我将 myfile.xaml 的类型更改为 Resource,我会收到相同的错误。

如何从代码编译和引用 myfile.xaml?

最佳答案

您应该指定程序集名称:

Application.LoadComponent(new Uri("/AssemblyName;component/myfile.xaml", UriKind.Relative))

或者,如果文件具有代码隐藏类,您可以“新建”它,生成的代码将加载关联的 XAML。

关于.net - Application.LoadComponent 找不到资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15336917/

相关文章:

c# - 插件和工作流的抽象类

.net - .NET 的内部工作原理——内置设置加载器可以通过代码访问吗?

c# - 使用 LINQ 将具有相同值的多行列表连接成单行

.net - NotImplementedException 来自 .NET 的 CustomLineCap 构造函数

WPF - 示例应用程序,循序渐进

c# - 如何创建类似于 Google Images 的 WPF 布局

c# - 释放在 WPF Application.OnStartUp() : Which thread owns it? 中创建的命名互斥体

c# - 使用 xamarin 和 c# 在 android 上更改 cultureinfo

java - Jersey 从另一个资源调用一个资源以重用代码

asp.net-mvc - 无法在 asp.net mvc 中使用资源文件进行本地化