0

我有 c# metro 应用程序,其中存储了资产中的本地化图像。

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”和“cs”,以防您处于像 en-CA 这样的文化但仍想显示特定于语言的资源。

有关执行此操作的示例应用程序,请参阅http://code.msdn.microsoft.com/windowsapps/Application-resources-and-cd0c6eaa(它还包括覆盖区域性)。

于 2013-04-19T14:36:17.707 回答