2010-06-08 6 views
13

W WPF chcę zmienić domyślne zachowanie zamknięcia niektórych okien, tak aby po zamknięciu przez użytkownika czerwonego przycisku okno się nie zamknęło, po prostu chowa (i wywołuje też pewną metodę). Jak mogę to zrobić?Jak zastąpić domyślne zamknięcie okna?

+0

Teraz którego odpowiedź powinienem przyjąć ?? Oba są równie dobre ... – drasto

Odpowiedz

28

Spróbuj nadrzędnymi OnClosing w Window.xaml.cs

private override void OnClosing(object sender, CancelEventArgs e) 
{ 
    e.Cancel = true; 
    //Do whatever you want here.. 
} 
+13

W moim ustawieniu C# 4.0 powinno to być 'protected override void OnClosing (CancelEventArgs e)'. – SimonT

13

This page powinien pomóc.

Zamykanie można obsłużyć w celu wykrycia, kiedy okno jest zamykane (na przykład po wywołaniu Close). Ponadto zamykanie może być użyte, aby zapobiec zamknięciu okna. Aby zapobiec zamknięciu okna, możesz ustawić właściwość Anuluj argumentu CancelEventArgs na true.

I

Jeśli chcesz pokazać i ukryć okno kilka razy w trakcie trwania aplikacji, a nie chcesz, aby reinstantiate przez okno za każdym razem go pokazać, można obsługiwać zamknięcie zdarzenia, anuluj je i wywołaj metodę Ukryj. Następnie możesz wywołać Show na tym samym egzemplarzu, aby go ponownie otworzyć.