2

理論的には、一度だけ表示されるページを開始するWindowsPhone7.5アプリケーションを作成しています。それを呼びましょうSplashPage.xaml。SplashPage.xamlには、パラメーター値が異なる2つのボタンが含まれています。
これは英語のボタンであり、別のボタンもあります。

    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に保存されています。さて、私がやりたいのは基本的に次のとおり です。If
(languageChooserには値として「Norwegian」または「English」のいずれかが含まれます)
->開始時にユーザーを自動的にリダイレクトします(SplashPage.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
        {

        }

    }  

何か案は ?

4

2 に答える 2

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

クリックイベントに保存がありませんでした。これにより、値が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メソッドを使用する必要があります。

于 2013-02-26T14:06:38.297 に答える
1

App.xaml.csあなたにはvoidがありApplication LaunchingApplication Activatedloadind設定にはvoidがあると思いますが、デフォルト言語用にもう1つ追加するだけです

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

        }
    }

そして最後にあなたWMAppManifestのフィルドNavigation Pageは空でなければなりません。

それがあなたのために働くことを願っています。

于 2013-02-26T14:00:51.267 に答える