我的项目中有一个 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/