gpt4 book ai didi

wpf - 如何在关闭处理程序中区分 'Window close button clicked (X)'与window.Close()

转载 作者:行者123 更新时间:2023-12-03 12:35:03 26 4
gpt4 key购买 nike

有一种聪明的方法来检测窗口是否被关闭

  • 用户按下窗口右上角的(X)按钮或
  • window.Close()已通过编程调用。

  • 我想在window.Closing处理程序中检测到这一点。
    每当我调用window.Close()时,我都可以设置一个标志,但这不是一个很好的解决方案。

    最佳答案

    我不确定我是否完全喜欢这个,但这是一个显然您有理由提出疑问的问题。如果要在OnClosing事件中进行堆栈跟踪,则可以查找Window.Close事件。

    protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
    {
    bool wasCodeClosed = new StackTrace().GetFrames().FirstOrDefault(x => x.GetMethod() == typeof(Window).GetMethod("Close")) != null;
    if (wasCodeClosed)
    {
    // Closed with this.Close()
    }
    else
    {
    // Closed some other way.
    }

    base.OnClosing(e);
    }

    关于wpf - 如何在关闭处理程序中区分 'Window close button clicked (X)'与window.Close(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13361260/

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