0

アセットにローカライズされた画像が保存されている c# メトロ アプリケーションがあります。

Assets
  cs-CZ
    Car1.jpg
    Car2.jpg
    Car3.jpg
    Car4.jpg
  en-US
    Car1.jpg
    Car2.jpg
    Car3.jpg
    Car4.jpg
    Car5.jpg
    Car6.jpg
    Car7.jpg

すべての CarXX.jpg 言語固有の画像をリストにロードし、画像が存在するかどうかを確認したいと思います (コードは動的である必要があるため、誰かが新しい画像を追加すると、アプリケーションのパラメーターを変更せずに新しい画像が読み込まれます)。指定した言語の画像が存在するかどうかを確認する方法がわかりません。アプリケーションが cs-CZ で実行されている場合は 4 つの画像を返す必要があり、アプリケーションが en-US で実行されている場合は 7 つの画像を返す必要があります。

私はこのコードを持っています:

/// ...
int index = 1;
while (true)
{
    string carPictureName = String.Format("Car{0}.jpg", index++);

    // TODO: CHECK IF FILE EXISTS IN THE ASSET FOR SPECIFIED LANGUAGE
    bool fileExists = CheckIfFileExists(carPictureName);

    if (fileExists)
    {
        pictures.Add(carPictureName);
    }
    else
    {
        break;
    }
}
4

1 に答える 1

0

通常、XAML で "論理" ビットマップを参照すると、読み込まれたリソースが現在のカルチャを検出し、正しいイメージを読み込みます。en-CA のようなカルチャを使用しているが、言語固有のリソースを表示したい場合に備えて、非特定のカルチャ (「en」や「cs」など) も使用することをお勧めします。

これを行うアプリケーションの例については、http://code.msdn.microsoft.com/windowsapps/Application-resources-and-cd0c6eaaを参照してください(カルチャのオーバーライドも含まれています)。

于 2013-04-19T14:36:17.707 に答える