C# 从wpf中的系统托盘还原窗口
通过这段代码,我可以确保只有一个应用程序实例正在运行。但我无法使窗口从系统托盘中恢复。我尝试了窗口。显示但没有解决C# 从wpf中的系统托盘还原窗口,c#,wpf,C#,Wpf,通过这段代码,我可以确保只有一个应用程序实例正在运行。但我无法使窗口从系统托盘中恢复。我尝试了窗口。显示但没有解决 public class SingletonApplication : Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase { public App application { get; private set; } Telas.wndLogin window;
public class SingletonApplication : Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase
{
public App application { get; private set; }
Telas.wndLogin window;
[STAThread]
public static void Main(string[] args)
{
new SingletonApplication().Run(args);
}
public SingletonApplication()
{
this.IsSingleInstance = true;
}
protected override bool OnStartup(Microsoft.VisualBasic.ApplicationServices.StartupEventArgs eventArgs)
{
application = new App();
window = new Telas.wndLogin();
application.Run(window);
return false;
}
protected override void OnStartupNextInstance(Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs eventArgs)
{
//todo:
}
}
不确定单例应用程序是否是一个好主意。可能是双重的。看看这个,也许会有帮助:系统托盘上没有一个窗口。。。当你最小化到托盘时,你在用你的窗户做什么?藏起来?关闭它?如果要关闭它,需要创建一个新窗口。。。如果您正在隐藏它,那么window.Show应该work@Jcl我设置了这个。ShowInTaskbar=true;this.Visibility=System.Windows.Visibility.Hidden;如果尝试window.Visibility=System.Visibility.Visible;或窗口。Show ocurs此错误:无法设置可见性或在窗口关闭后调用Show、ShowDialog或WindowInteropHelper.EnsureHandle。很明显,它可能是在其他地方关闭的,或者您的目标是错误的窗口。这是最明显的错误,但当用户单击X而不阻止关闭时,您是否隐藏了它?此外,ShowInTaskbar不会将其移动到托盘中。这就决定了它是否应该在任务栏上显示,而不是任务栏上