如何在c# metro应用程序中从资源中检索语言特定的图像

本文关键字:检索语言 图像 资源 metro 应用程序 | 更新日期: 2023-09-27 18:10:05

我有一个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;
    }
}

如何在c# metro应用程序中从资源中检索语言特定的图像

通常在XAML中引用"逻辑"位图,加载的资源将检测当前区域性并加载正确的图像。一般来说,如果您处于像en- ca这样的文化中,但仍想显示特定语言的资源,那么使用非特定文化也是一个好主意(例如"en"answers"cs")。

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