Как создать кнопку закрытия, в то время как оригинальная кнопка закрытия должна минимизировать? - PullRequest
0 голосов
/ 12 апреля 2019

Я хочу, чтобы у меня было закрытое окно.Мой сценарий: оригинальная функция кнопки X состоит в том, чтобы свернуть окно, в то время как пользовательский режим фактически закроет его.Мой X по умолчанию выглядит следующим образом:

 // add handler by double clicking on Closing event in Properties Box
 // My below X button
    private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
        e.Cancel = true;
        this.Hide();
    }

Однако, когда я пытаюсь создать пользовательскую кнопку закрытия следующим образом:

void closeButton_Click(object sender, RoutedEventArgs e)
{
   Close();
}

Она просто свернется, как по умолчанию.Так как мне это?Спасибо за чтение.

Ответы [ 2 ]

1 голос
/ 12 апреля 2019
    private bool _forceClose;

    private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
        if(!_forceClose) 
        {
            e.Cancel = true;
            this.Hide();
        }
    }

    void closeButton_Click(object sender, RoutedEventArgs e)
    {
        _forceClose = true;
       Close();
    }
0 голосов
/ 12 апреля 2019

Вы можете удалить событие закрытия нажатием кнопки

    public MainWindow()
    {
        InitializeComponent();           
        this.Closing += MainWindow_Closing;

    }

    void MainWindow_Closing(object sender, CancelEventArgs e)
    {
        e.Cancel = true;
        this.Hide();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        this.Closing -= MainWindow_Closing;
        this.Close();

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...