我创建了一个WPF应用程序。当使用命令行参数启动此应用程序时,在App.xaml.cs中,我将布尔变量设置为true。然后它会在系统托盘中显示一个通知图标,并创建一个MainWindow类的对象并在其上调用ShowDialog()
主窗口构造如下:
public MainWindow(){
InitializeComponent();
if (GlobalVariables.bLaunchedInNotificationMode){
this.ShowInTaskbar = false;
this.WindowState = System.Windows.WindowState.Minimized;
this.Visibility = System.Windows.Visibility.Hidden;
NotifyIconHelper.GetInstance().NotifyIconContextMenuClick+= new NotifyIconContextMenuHandler(ChangeMainWindowVisibility);
}
}
这意味着如果使用参数调用,app.xaml.cs会将变量bLaunchedInNotificationMode
设置为true。
将变量设置为true后,我在系统托盘中显示通知气球。
在显示通知气球的代码之后,在App.xaml.cs中写道:
MainWindow objMainWindow = new MainWindow();
objMainWindow.ShowDialog();
这将调用上面的构造函数,并在隐藏的主窗口中启动。 我还在通知气球上有一个上下文菜单项,其中显示启动应用程序,单击此上下文菜单,在MainWindow中我执行:
this.Visibility = System.Windows.Visibility.Visible;
this.ShowInTaskbar = true;
this.WindowState = System.Windows.WindowState.Normal;
在调试过程中,我确认此关键字代表MainWindow,但即使设置了所有三个属性,窗口也不会显示。这有什么不对?