8

プロジェクトにxamlファイルがありますNs1\Ns2\myfile.xaml。ビルドアクションは、MSBuild:Compileのカスタムツールを使用してPageに設定されています。このファイルを静的コンストラクターにロードしようとしています:

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 に答える