我正在创建一个 Windows Phone 7.5 应用程序,理论上,它应该启动一个仅显示一次的页面。我们将其命名为 SplashPage.xaml
。 SplashPage.xaml 包含两个具有不同参数值的按钮:
这是英文按钮,还有另一个按钮:
private void chooseEnglish_Click_1(object sender, RoutedEventArgs e)
{
languageChooser.Add("languageChooser", "English");
NavigationService.Navigate(new Uri("/MainPage.xaml?Language=English", UriKind.Relative));
}
但是,目前我还保存了一个 LocalSettings
值“languageChooser”,点击后值为“English”,该值存储在名为 ApplicationSettings
的语言选择器。现在,我希望它做的基本上是:
如果(languageChooser 包含“挪威语”或“英语”作为值)
-> 启动时自动将用户重定向(输入 SplashPage.xaml)到 MainPage.xaml
其他
-> 用户选择一种语言,并根据他/她单击的按钮存储该值。
我希望这是足够的信息。截至目前,SplashPage.xaml.cs 的开头看起来 像这样:
public SplashPage()
{
InitializeComponent();
if ((string)languageChooser["languageChooser"] == "Norwegian" || (string)languageChooser["languageChooser"] == "English")
{
NavigationService.Navigate(new Uri("/MainPage.xaml?Language=Norwegian", UriKind.Relative));
}
else
{
}
}
有什么想法吗?
最佳答案
private void chooseEnglish_Click_1(object sender, RoutedEventArgs e)
{
languageChooser.Add("languageChooser", "English");
languageChooser.Save();
NavigationService.Navigate(new Uri("/MainPage.xaml?Language=English", UriKind.Relative));
}
您的点击事件缺少保存。这会将值保存到 ApplicationSettings。
public SplashPage()
{
InitializeComponent();
string language;
languageChooser.TryGetValue("languageChooser", out language);
if (language != null)
{
NavigationService.Navigate(new Uri("/MainPage.xaml?Language=" + language, UriKind.Relative));
}
}
在应用程序启动时加载值时。第一次运行时,它们的键没有值,因此您需要使用 TryGetValue 方法。
关于c# - LocalStorage 重定向 Windows Phone 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15090158/