У меня возникли проблемы с изменением языка моего приложения. Язык должен быть изменен, когда пользователь изменяет выбранный элемент в поле со списком.Проблема локализации - Windows 8.1 App
Вот отрывок из части моего кода:
protected override void OnLaunched(LaunchActivatedEventArgs args)
{
ResourceContext.GetForCurrentView().QualifierValues.MapChanged += QualifierValues_MapChanged;
}
private void QualifierValues_MapChanged(IObservableMap<string, string> sender, IMapChangedEventArgs<string> @event)
{
ResourceContext.ResetGlobalQualifierValues();
}
Код выпадающий является:
private void cbLanguage_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.AddedItems.Count > 0 && !String.IsNullOrEmpty(((ComboBoxItem)e.AddedItems[0]).Tag as string))
{
LocalizationManager.UICulture = new System.Globalization.CultureInfo((string)((ComboBoxItem)e.AddedItems[0]).Tag);
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = LocalizationManager.UICulture.Name;
int index = 0;
if (cbLanguage.SelectedIndex == 0 || cbLanguage.SelectedIndex < 0)
{
index = cbLanguage.Items.Count - 1;
}
else
{
index = cbLanguage.SelectedIndex - 1;
}
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = (string)((ComboBoxItem)cbLanguage.Items[index]).Tag as String;
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = ((ComboBoxItem)e.AddedItems[0]).Tag as String;
if (languageChange != null)
{
languageChange(sender, new EventArgs());
}
}
else
{
LocalizationManager.UICulture = System.Globalization.CultureInfo.CurrentUICulture;
}
}
Это возвращает ошибку нарушения прав доступа.
Не могли бы вы помочь мне, чтобы приложение меняло язык правильно?
Я пробовал запустить этот код, но функция «MapChanged» не вызывается. Не могли бы вы поделиться кодом для combobox? Возможно, это поможет мне воссоздать вашу проблему. –
Привет @BryanStump, Я обновил сообщение с кодом combobox. Спасибо, что пытался помочь мне. FYI, код, который у меня был для Windows 8, работал отлично. Это произошло, когда я нацелился на приложение на Windows 8.1. –
Я запустил код и не смог воспроизвести ошибку. Без класса Менеджера локализации и зная, какие теги находятся в элементах со списком, возможно, существует ошибка. –