Как определить кнопку или строку заголовка Закрыть кнопку щелкнуть поднял Window_Close событие в WPF?

У меня есть 3 формы WPF, а именно MainWindow, SettingWindow и FinalWindow. У меня есть FinalButton в SettingWindow, когда я нажимаю кнопку, которую я хочу клонировать текущие настройкиWindows и хочу открыть FinalWindow. Аналогично, когда я нажимаю кнопку «Закрыть» в строке заголовка, я хочу закрыть текущую форму и открыть MainWindow. Но я столкнулся с проблемой, и проблема в том, что когда я нажимаю кнопку «Закрыть» в строке заголовка или нажимаю кнопку «ButtonFinal», в обоих случаях открывается MainWindow, и чтобы этого избежать, мне нужно поставить условие в событии закрытия, чтобы узнать какая кнопка подняла событие. Я не получил фактического решения проблемы. Не могли бы вы помочь мне решить проблему.

private void ButtonFinal_Click(object o, RoutedEventArgs e)
{
    FinalWindow finalWindow = new FinalWindow();
    finalWindow.Show();
    this.Close();
}

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

Всего 1 ответ


Вы можете установить флаг в обработчике событий ButtonFinal_Click и проверить этот флаг в обработчике событий Closing , например:

private bool _closedByButton;
private void ButtonFinal_Click(object o, RoutedEventArgs e)
{
    FinalWindow finalWindow = new FinalWindow();
    finalWindow.Show();
    _closedByButton = true;
    this.Close();
    _closedByButton = false;
}

private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
    if (_closedByButton)
    {
        //...
    }
}

Есть идеи?

10000