打开程序 弹出一个登陆框 登陆框浮现在主界面上面 要求在没有登录的时候 登陆框无法关闭 请问这个功能怎么实现(额外再请教个问题 点击一个BUTTON关闭整个应用程序在WPF中可以实现吗)

解决方案 »

  1.   

    一般是登录完成后将登录框窗体关闭才打开主界面的。Winform里可以用Application.Exit();我没在WPF里试过。
      

  2.   

    因为主界面是一个可以操作的世界地图,所以需要在打开软件的时候就能看到。WPF中有App.Current.Exit();我去试下。
      

  3.   

    问题1,你的逻辑搞反了,按照你的逻辑,主窗体是一定要显式的,只不过是在登陆窗口关闭前无法操作。
    那么,你可以在主窗体第一次Actived的时候把登陆窗体ShowDialog出来,这样,登陆窗体不关闭,主窗体就无法操作了。
    问题2,Application.Current.MainWindow.Close();WPF把主窗体关了,整个应用程序也就关了。
      

  4.   


    多谢你的解答 关于第二个问题 调用App.Current.MainWindow.Close();它会报错用户代码未处理 System.Security.SecurityException
      Message=除非应用程序具有提升的权限或者通过用户启动的操作调用代码,否则不允许访问属性或调用方法。
      StackTrace:
           位于 System.Windows.Window.CheckForPermissions()
           位于 System.Windows.Window.Close()
           位于 SoftwareFramework.PresentationLayer.ProjectLayer.UserInterface.LoginPage._TimerClock_Tick(Object sender, EventArgs e)
           位于 MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
           位于 MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)
      InnerException: 能否帮我看下这个是什么原因吗?
      

  5.   

                System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>
                        System.Windows.Application.Current.MainWindow.Close()));