先说一下我的需要,需求是一系列窗口windows1,windows2,windows3,windows4,windows5,之间互相跳转,就像安装程序的下一步一样。我在App.xaml处理 StartUp 事件,在事件里启动窗口1,new Window1().ShowDialog(),然后我在由windows1跳转到windows2的时候,如果用show()方法,应用程序就关闭了,可是我不想关闭程序,我希望在任意的一个窗口关闭的时候才关闭应用程序,请问如何实现呢?比如说,程序从windows1启动,跳转到windows2,再跳转到windows3,这时如果用户按了alt+f4,关闭窗口,那么就关闭应用程序,请问应该怎么做的,先谢谢各位了!~

解决方案 »

  1.   


    记得你提过这个问题的,翻了一下原来的问题,还是以前那个答案:如果你使用ShutdownMode="OnExplicitShutdown",那么程序关闭需要手动控制,alt+f4是关闭窗体,不是关闭应用程序,你可以在窗体的Closed事件中执行Application.ShutDown()来关闭应用程序
      

  2.   

    因为上次没能找到答案,所有才再问,把情况说的清楚一下,可是如果在窗体的Closed事件中执行Application.ShutDown(),那么窗口跳转的时候就关闭应用程序了啊~
      

  3.   


    处理这种问题方法很多啊首先你可以定义一个全局计数器变量,打开一个窗口时计数器+1,关闭一个窗口时计数器-1,当计数器为0的时候关闭应用程序,否则继续执行,这样当你打开新窗口,并关闭旧窗口时,Closed里面计数器实际没变,程序继续;当你仅执行关闭时,则计数器减少了,减少到0时,执行Application.ShutDown()另外你可以自定义一个事件代理,触发自定义事件时将是否关闭应用程序的参数传给事件处理方法,在事件处理方法中关闭应用程序
      

  4.   

    Application.ShutDown()怎么不可以使用啊。VS没有提示啊。在closed事件里没有提示啊。
      

  5.   

    Application.ShutDown()怎么不可以使用啊。VS没有提示啊。在closed事件里没有提示啊。