我正在为Android和UWP创建Xamarin.Forms应用程序,我使用RESX文件在语言(默认为英语和阿拉伯语)之间切换,它运行正常 .

语言开关在按钮单击事件的运行时按需运行,UWP中的图像路径为 Assets/Images/enAssets/Images/ar 两个文件夹中的图像集相同,但名称相同,但加载的图像始终来自 Assets/Images/en .

RESX文件命名为Resources.ar.resx和Resources.resx

我使用单个方法在PCL中的静态类中加载图像并在PCL中使用

public static ImageSource GetImageSource(string imageName)
        {
            return Device.OnPlatform(
                                     iOS: ImageSource.FromFile("Images/" + imageName),
                                     Android: ImageSource.FromFile(imageName),
                                     WinPhone: ImageSource.FromFile("Assets/Images/" + imageName));
        }

当我从 INotifyPropertyChanged 实现中检测到语言更改时,我使用此方法 . 我的问题是,当我更改语言时,控件的字符串工作正常,但图像不会更改,始终来自 Assets/Images/en .

我按照Xamarin指南中的这2个链接进行了本地化和图像处理

Localization

Images

如果有一个工作样本在运行时进行本地化并处理图像,那就太好了 .