求助帖:WPF关于弹出登陆框的问题

oracle10002 2012-03-29 10:52:23
打开程序 弹出一个登陆框 登陆框浮现在主界面上面 要求在没有登录的时候 登陆框无法关闭 请问这个功能怎么实现(额外再请教个问题 点击一个BUTTON关闭整个应用程序在WPF中可以实现吗)
...全文
269 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
oracle10002 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

一般是登录完成后将登录框窗体关闭才打开主界面的。

Winform里可以用Application.Exit();我没在WPF里试过。
[/Quote]
因为主界面是一个可以操作的世界地图,所以需要在打开软件的时候就能看到。WPF中有App.Current.Exit();我去试下。
mizuho_2006 2012-03-29
  • 打赏
  • 举报
回复
一般是登录完成后将登录框窗体关闭才打开主界面的。

Winform里可以用Application.Exit();我没在WPF里试过。
cheng2005 2012-03-29
  • 打赏
  • 举报
回复
System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>
System.Windows.Application.Current.MainWindow.Close()));
oracle10002 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

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

多谢你的解答 关于第二个问题 调用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:

能否帮我看下这个是什么原因吗?
cheng2005 2012-03-29
  • 打赏
  • 举报
回复
问题1,你的逻辑搞反了,按照你的逻辑,主窗体是一定要显式的,只不过是在登陆窗口关闭前无法操作。
那么,你可以在主窗体第一次Actived的时候把登陆窗体ShowDialog出来,这样,登陆窗体不关闭,主窗体就无法操作了。
问题2,Application.Current.MainWindow.Close();WPF把主窗体关了,整个应用程序也就关了。
oracle10002 2012-03-29
  • 打赏
  • 举报
回复
有没有人帮助一下啊

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧