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不会将其移动到托盘中。这就决定了它是否应该在任务栏上显示,而不是任务栏上