8

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

4

1 回答 1

13

您应该指定程序集名称:

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

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

于 2013-03-11T11:12:47.923 回答