我的项目Ns1\Ns2\myfile.xaml
中有一个xaml文件。它的构建操作设置为Page,使用MSBuild的自定义工具:编译。我正在尝试在静态构造函数中加载此文件:
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?
答案 0 :(得分:11)
您应该指定程序集名称:
Application.LoadComponent(new Uri("/AssemblyName;component/myfile.xaml", UriKind.Relative))
或者,如果文件具有代码隐藏类,则可以“新”它,生成的代码将加载关联的XAML。