私はwin8アプリケーションを作成しており、組み込みのリソース管理システム:resw
ファイルとx:Uid
タグをXAMLコードに使用しています。リソースのローカリゼーション: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
メカニズムを有効にするにはどうすればよいですアセンブリ外のリソースを使用していますか?
ResourcesLibrary/Resources/ResourceTest
のようなx:Uid
ではいくつか試しましたが、運はありません。
質問をしてから解決策を見つけましたか?私は今同じ問題に直面している。 –
いいえ、私は同じアセンブリを使用するに戻った、調査する時間がなかった。 – Mic
実際にreswリソースファイルのコードビハインドクラスを生成するために、このツールを使用して終了しました。reswが別のアセンブリに含まれていても魅力的です:http://reswcodegen.codeplex.com/ –