10

私はwin8アプリケーションを作成しており、組み込みのリソース管理システム(XAMLコード内のreswファイルとタグ)を使用します。x:Uid

だから私はそのようなものを作成しましょうTextBox

<TextBlock Style="{StaticResource HeaderTextStyle}" x:Uid="ResourceTest"/>

アセンブリに対応するリソースファイルをResourceTest.Textエントリを使用して作成すると、正常に機能します。実行時に適切なテキストが表示されます。

ここで、保守性のために、すべてのresxファイルを別のC#ライブラリに移動したいと思います。そこで、リソースファイルを新しいプロジェクトに配置し、メインアセンブリからこの新しいアセンブリを参照します。

ただし、これにより、前の構成が失敗します(テキストは表示されません)。

ただし、サイドアセンブリ(ResourcesLibraryと呼ばれる)内から次のコードを使用してプログラムでリソース値を取得すると、文字列が正しく取得されます。

static ResourceLoader resourceLoader = null;
public static string GetString(string resourceName)
{
    if (resourceLoader == null)
        resourceLoader = new ResourceLoader ("ResourcesLibrary/Resources");
    return resourceLoader.GetString (resourceName);
}

x:Uidアセンブリ外のリソースを処理するときにメカニズムを有効にするにはどうすればよいですか?

私はそのx:Uidようないくつかのことを試みましたResourcesLibrary/Resources/ResourceTestが、運がありませんでした。

4

2 に答える 2

14

私は長い間同じ問題を抱えていました。しかし、少しテストした後、リソースのパス全体を XAML コードに記述して解決しました。

このようなもの:

<TextBlock x:Uid="/ResourcesLibrary/Resources/ResourceTest" />

残念ながら、この回答は非常に遅くなりましたが、他の人の助けになるかもしれません.

于 2015-01-03T01:41:04.903 に答える