0

我有一个 WPF 应用程序,当第一次启动时显示窗口以选择语言。因此,在 App.xaml 中:

<Application x:Class="MyApp.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="WindowLanguage.xaml">

在窗口语言中:

public partial class WindowLanguage : Window
{
    bool mainWindowOpened = false;
    public WindowLanguage()
    {
        if (!Settings.Instance.firstStart)
        {
            MainWindow mainWindow = new MainWindow();
            mainWindow.Show();
            Close();
        }

它可以工作,但不必要的 Window 是 init。

我考虑以下方式:App.xaml.cs

protected override void OnStartup(StartupEventArgs e)
{
    base.OnStartup(e);
    if (!Settings.Instance.firstStart)
        StartupUri = new Uri("/MyApp;component/MainWindow.xaml", UriKind.Relative);

}

改变 StartupUri 的第二种方法更好吗?哪种方式最适合我的情况(在首次启动应用程序时打开 WindowLanguage)?

4

1 回答 1

1

设置startupUri总是比recreating window重新设置好。

根据某些条件(例如打开窗口的年龄),还有其他打开窗口的选项console Main method在这里可以找到更多选项。

protected override void OnStartup(StartupEventArgs e)
{
    base.OnStartup(e);
    if (!Settings.Instance.firstStart)
    {
        MainWindow mainWindow = new MainWindow();
        mainWindow.Show();
    }
    else
    {
       WindowLanguage windowLanguage = new WindowLanguage();
       windowLanguage.Show();
    }
}
于 2013-07-20T14:17:43.360 回答