在 WPF 中从一个 window 切换到另一个并使其处于活动状态
Switching from one window to another in WPF and making it active
我是 WPF 的新手,我正在尝试制作一个数据库系统。我目前拥有的是 Login
Window。当您输入用户名和密码时,您应该转到另一个 window StudentInfoSystem
。我使用的代码非常基础和通用。
var info = new StudentInfoSystem.MainWindow();
info.Show();
this.Close();
所以,这会做的是,在您按下登录按钮后,您会转到 StudentInfoSystem
并且登录 window 关闭。我对 Show()
的问题是它打开 window 并立即 returns,对吗?它不会等待新的 window 关闭。所以,我的问题是如何打开一个新的 window 并使用它?当我说工作时,我的意思是根据用户的角色等在我的文本框中显示信息(在新打开的 window 中)...
尝试 window.Activate()
聚焦新 window and/or [any element].Focus()
聚焦 window.
中的任何元素
我猜上面的代码在登录 Window 的按钮单击处理程序中,这将使登录 Window 成为 StudentInfoSystem window 的父级。
由于 WPF 将在关闭父级 window 时关闭父级和任何子级 window(s),因此您的 StudentInfo window 也将在调用
时关闭
this.Close();
一个选择可能是调用
this.Hide();
但没有看到您的应用程序的其余部分是如何设置的,不能 100% 确定这是最好的方法。
也许看到这些 SO 问题:
wpf-create-sibling-window-and-close-current-one
how-to-close-current-window-in-code-when-launching-new-window
据我了解,这应该可以满足您的要求:
info.ShowDialog();
您也可以查看 ShutdownMode
属性。我宁愿说,login window 是你想在登录后关闭的东西,但是做你想做的:)。 ShutdownMode
属性的用法:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
this.ShutdownMode = System.Windows.ShutdownMode.OnLastWindowClose;
}
}
我是 WPF 的新手,我正在尝试制作一个数据库系统。我目前拥有的是 Login
Window。当您输入用户名和密码时,您应该转到另一个 window StudentInfoSystem
。我使用的代码非常基础和通用。
var info = new StudentInfoSystem.MainWindow();
info.Show();
this.Close();
所以,这会做的是,在您按下登录按钮后,您会转到 StudentInfoSystem
并且登录 window 关闭。我对 Show()
的问题是它打开 window 并立即 returns,对吗?它不会等待新的 window 关闭。所以,我的问题是如何打开一个新的 window 并使用它?当我说工作时,我的意思是根据用户的角色等在我的文本框中显示信息(在新打开的 window 中)...
尝试 window.Activate()
聚焦新 window and/or [any element].Focus()
聚焦 window.
我猜上面的代码在登录 Window 的按钮单击处理程序中,这将使登录 Window 成为 StudentInfoSystem window 的父级。
由于 WPF 将在关闭父级 window 时关闭父级和任何子级 window(s),因此您的 StudentInfo window 也将在调用
this.Close();
一个选择可能是调用
this.Hide();
但没有看到您的应用程序的其余部分是如何设置的,不能 100% 确定这是最好的方法。
也许看到这些 SO 问题:
wpf-create-sibling-window-and-close-current-one
how-to-close-current-window-in-code-when-launching-new-window
据我了解,这应该可以满足您的要求:
info.ShowDialog();
您也可以查看 ShutdownMode
属性。我宁愿说,login window 是你想在登录后关闭的东西,但是做你想做的:)。 ShutdownMode
属性的用法:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
this.ShutdownMode = System.Windows.ShutdownMode.OnLastWindowClose;
}
}