gpt4 book ai didi

c# - 从按钮打开窗口而不创建新的 windowFoo 实例

转载 作者:太空宇宙 更新时间:2023-11-03 12:15:37 24 4
gpt4 key购买 nike

问题在于,每次在 Windows 之间移动时,都会创建一个新的对象实例并添加到内存堆(进程内存,不完全确定,如果术语错误请更正!)。在我看来,这是一种浪费和糟糕的品味,我想知道是否还有其他解决方案,因为我确信之前有人考虑过。我不喜欢 Pages,对于桌面应用程序,导航按钮看起来太像 Windows 7 中的 IE。

我见过这样的解决方案(我意识到我没有使用好的命名约定,但我只是为了好玩而修补 WPF):

public GoogleAPI()
{
InitializeComponent();
Closing += GoogleAPI_Closing;
}

private void GoogleAPI_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
MainWindow main = new MainWindow();
main.Show();
}

这与 MainWindow 一起使用,在按钮事件中的 MainWindow 中创建一个新的 GoogleAPI(我的窗口名称)实例。

private void Button1_Click(object sender, RoutedEventArgs e)
{
GoogleAPI googleapi = new GoogleAPI();
googleapi.Show();
this.Hide();
}

最佳答案

在类级别声明 Window 实例不是很明显吗?

 public class Abc()
{
MainWindow mw = new MainWindow();
///GoogleApi gp = new GoogleApi

private void Show()
{
mw.Show();
//gp.Show();
}

但是,如果窗口是主窗口,上面的代码将不起作用,而是试试这个:

  Application.Current.MainWindow.Show();

关于c# - 从按钮打开窗口而不创建新的 windowFoo 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49907728/

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