当前位置: 首页 > 编程语言 > C#

C#WindowsPhone8.1语言选择分享

时间:2023-04-10 16:18:58 C#

C#WindowsPhone8.1语言选择希望之前没有人问过这个问题,我在MSDN或这里找不到简单的解决方案。WindowsPhone8.1应用程序以多种语言部署。为此,我在Stringsen-USRessources.resw中使用了默认语言(英语),并安装了MultilingualAppToolkit,并在那里添加了所有其他语言。要更改语言,我有以下代码:privatevoidchangeLang(stringcul){Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride=cul;Windows.ApplicationModel.Resources.Core.ResourceContext.GetForViewIndependentUse().Reset();Windows.ApplicationModel.Resources.Core.ResourceContext.GetForCurrentView().Reset();if(Frame!=null)Frame.Navigate(typeof(MainPage));}可以调用changeLang("en-US");之后我必须重新启动应用程序(如果不重新启动它就无法工作)。问题是我的实施。我创建了一个名为“设置”的页面,我想让用户可以更改语言。现在我想为用户提供一个ComboBox,其中包含我翻译的所有语言。默认情况下,选定的ComboBoxItem应显示应用程序的当前语言(不是系统语言,因为用户可能已更改语言)。这是我对问题的解决方案,我希望这对其他人也有用。首先我们创建一个新结构:publicclassComboboxItem{publicstringText{get;放;}公共对象值{得到;放;}publicoverridestringToString(){returnText;然后在表单代码的OnNavigate部分添加以下内容:settings_language_cb.Items.Add(newComboboxItem{Text="Deutsch",Value="de-DE"});settings_language_cb.Items.Add(newComboboxItem{Text="English",Value="en-US"});varcurLangItem=settings_language_cb.Items.SingleOrDefault(x=>(xasComboboxItem).Value.ToString()==CultureInfo.CurrentCulture.Name);settings_language_cb.SelectedItem=curLangItem;settings_language_cb.PlaceholderText=(temText;就是这样。您可以尝试类似这样的操作classLanguageCode{stringName{get;放;},字符串代号{get;放;}}varlangs=newList();langs.Add(newLanguageCode(){Name="English",CodeName="en-US"});langs.Add(newLanguageCode(){Name="Deutsch",CodeName="de-DE"});//...等等...settings_language_cb.Items。添加(语言);settings_language_cb.SelectedIndex=0;在ComboBox上,将代码更改为:privatevoidComboBox_SelectionChanged(objectsender,SelectionChangedEventArgse){如果(si!=nullang).CodeName);//changeLang("de-DE");}@MrEko获取所选项目很容易。首先,您必须在XAMLCombobox中创建SelectionChanged事件,然后您将获得这样的选定项目:(myXAMLComboBox.SelectedItemasComboboxItem).Value.ToString();在这里,整个事情都在进行中。(注意我换语言的时候,changeLang是我保存的常量,changeLang是改变语言的函数)。原因是更改语言后必须重启应用程序才能生效。以上就是C#学习教程:C#WindowsPhone8.1语言选择分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——.ToString()){try{changeLang((PageSettings_Language_cb.SelectedItemasComboboxItem).Value.ToString());ShowRestartMessageBox();}catch(Exception){}}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: