2013-02-26 71 views
2

我正在創建一個Windows Phone 7.5應用程序,理論上應該啓動一個只顯示一次的頁面。我們稱之爲SplashPage.xaml。 SplashPage.xaml包含不同的參數值兩個按鈕:
這是英文按鈕,還有另一個按鈕,以及:LocalStorage重定向Windows Phone 7

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」點擊時顯示值爲「英語」,存儲在名爲languageChooser的ApplicationSettings中。現在,我想要做的事情基本上是:
如果(languageChooser包含「Norwegian」或「English」值)
- >在開始(輸入SplashPage.xaml)後自動將用戶重定向到MainPage。 xaml
else
- >用戶選擇一種語言,並根據他/她點擊的按鈕存儲該值。

我希望這是足夠的信息。截至目前,該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 
     { 

     } 

    } 

任何想法?

回答

2
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)); 
} 

您的clickevent失蹤保存。這會將值保存到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方法。

1

App.xaml.cs你有Application LaunchingApplication Activated的空隙我假設你有loadind設置的空隙,只需添加另一個爲默認語言

private void Application_Launching(object sender, LaunchingEventArgs e) 
    {   
     LoadSettings(); 
     DefaultLanguage(); 
    } 

,做這樣的事情

void DefaultLanguage() 
    { 
      if (languageChooser==null) 
      { 
       ((App)Application.Current).RootFrame.Navigate(new Uri("/SplashPage.xaml", UriKind.Relative)); 

      } 
      else if (languageChooser =="Norwegian") 
      { 
       ((App)Application.Current).RootFrame.Navigate(new Uri("/MainPage.xaml?Language=Norwegian", UriKind.Relative)); 
      } 
      else if (languageChooser =="English") 
      { 
       ((App)Application.Current).RootFrame.Navigate(new Uri("/MainPage.xaml?Language=English", UriKind.Relative)); 
      } 

     } 
    } 

和finaly在你的WMAppManifest fild Navigation Page必須是空的。

我希望它能爲你工作。