gpt4 book ai didi

wpf - 如何重新打开关闭的窗口?

转载 作者:可可西里 更新时间:2023-11-01 13:51:32 26 4
gpt4 key购买 nike

我见过太多示例,为了打开关闭的窗口,我应该在关闭事件中隐藏窗口,但是如果我在工作中关闭窗口并再次打开它显示我的同一个窗口,这对我来说是不公平的我离开的内容,因为我之前隐藏了窗口。那么如何在关闭或隐藏窗口后重新启动我的窗口。

目前我正在调用 winload 方法,该方法是在调用隐藏窗口的 show 方法后显示新窗口。

    private PurgeData data=new PurgeData();

private void MenuPurgeData_Click(object sender, RoutedEventArgs e)
{

try
{
if (PurgeData == null)
{
PurgeData = new PurgeData();
PurgeData.Show();
}
else
{
PurgeData.WinLoad();
PurgeData.Show();
}
}

谢谢,@nagaraju。

最佳答案

如果你想要隐藏/显示的行为,你根本不应该在窗口上调用Window.Close(),而是通过调用Window.Hide()来隐藏它。如果用户已经关闭它并且关闭是不可避免的,您可以尝试以下操作。在 Window 中覆盖 OnClosing 并将 e.Cancelled 设置为 true,然后调用 .Hide()。即使用户关闭窗口,这也应该允许隐藏/显示窗口。

// Disclaimer, untested! 
protected override void OnClosing(CancelEventArgs e)
{
e.Cancel = true; // cancels the window close
this.Hide(); // Programmatically hides the window
}

编辑:

好的,我现在已经正确阅读了您的问题 ;-)那么如何在关闭或隐藏窗口后重新启动我的窗口。

当您使用上面的方法重新显示窗口时,它当然会与之前隐藏的实例相同,因此将具有相同的数据和状态。如果您想要全新的内容,您需要创建一个新的 Window() 并在其上调用 Window.Show()。如果您像上面那样隐藏/显示,那么您将让窗口恢复到隐藏之前的完全相同状态。

您是否在 WPF 应用程序中使用 MVVM 模式?如果是这样,您可以尝试以下操作。通过将所有数据放在 ViewModel 中并由 View 绑定(bind)(即:Window 后面的代码中没有业务逻辑或数据),然后您可以调用 ViewModel 上的方法以在显示窗口时重置所有数据。您的绑定(bind)将刷新并且窗口状态将被重置。请注意,这仅在您正确遵循 MVVM 并将主窗体上的所有元素绑定(bind)到 ViewModel 属性(包括子控件)时才有效。

最好的问候,

关于wpf - 如何重新打开关闭的窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8741632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com