Xamarin.forms 如何使用Xamarin表单更改iOS设备的区域设置?

Xamarin.forms 如何使用Xamarin表单更改iOS设备的区域设置?,xamarin.forms,xamarin.ios,Xamarin.forms,Xamarin.ios,有人知道如何在不使用设置应用程序的情况下使用Xamarin表单更改iOS设备的区域设置吗 如果你反对投票,请添加评论。多谢各位 更新 我想要的是控制RTL的NavigationPage按钮 本文档说明NavigationPage按钮位置的限制由设备区域设置控制: 更新 我的目标是控制NavigationPage,Xamarin的文档指出要更改设备的区域设置,我从中得到了这个想法。如果只是应用程序级的,应该更好。对于Xamarin表单,我建议创建一个依赖项服务。制作如下界面: public in

有人知道如何在不使用设置应用程序的情况下使用Xamarin表单更改iOS设备的区域设置吗

如果你反对投票,请添加评论。多谢各位

更新

我想要的是控制RTL的NavigationPage按钮

本文档说明NavigationPage按钮位置的限制由设备区域设置控制:

更新


我的目标是控制NavigationPage,Xamarin的文档指出要更改设备的区域设置,我从中得到了这个想法。如果只是应用程序级的,应该更好。

对于Xamarin表单,我建议创建一个依赖项服务。制作如下界面:

public interface ILanguageSwitcher
{
    void ChangeAppLocale(string locale);
}
为iOS创建接口的实现:

[assembly: Dependency(typeof(LanguageSwitcher))]
namespace MyApp.iOS
{
    class LanguageSwitcher : ILanguageSwitcher
    {
        public void ChangeAppLocale(string locale)
        {
            var iOSLocale = locale.Replace('-', '_');

            NSUserDefaults.StandardUserDefaults.SetValueForKey(NSArray.FromStrings(iOSLocale), new NSString("AppleLanguages"));
            NSUserDefaults.StandardUserDefaults.Synchronize();
        }
    }
}
注意:在iOS中,区域设置为en_US for US English,而不是en US

从Xamarin表单代码中调用此依赖项:

ILanguageSwitcher _languageSwitcher = DependencyService.Get<ILanguageSwitcher>();

private void LanguagePicker_SelectedIndexChanged(object sender, System.EventArgs e)
{
    var newItem = LanguagePicker.SelectedItem as CultureInfo;

    if (_languageSwitcher != null)
    {
        _languageSwitcher.ChangeAppLocale(newItem.Name);
    }
}

要使从右向左的更改生效,例如希伯来语或阿拉伯语,反之亦然,应用程序需要重新启动。

您是否检查了此选项?是的,我检查了该页面。这是对NavigationPage按钮位置的限制,该按钮表示它由设备区域设置控制。这就是我想要改变的,设备的区域设置。