我有一个 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)?