Ich bin froh, dass Sie Ihre Antwort erhalten haben, aber für andere werde ich auch Ihre Frage beantworten, um einige Informationen hinzuzufügen.
Schritt 1
Wenn Sie möchten, dass Ihr Programm beim Schließen des Hauptfensters beendet wird, müssen Sie zunächst angeben, dass dies nicht WinForms ist, bei dem dieses Verhalten standardmäßig verwendet wird.
(Die Standardeinstellung in WPF ist, wenn das letzte Fenster geschlossen wird.)
In Code
Gehen Sie zu Ihrer Anwendungsinstanz in Ihrem Einstiegspunkt (in VS 2012 WPF - Programm ist die Standard - verschachtelte innen App.xaml
, also gehen Sie innerhalb es und navigieren Sie zu App.xaml.cs
und einen Konstruktor erstellen).
Im Konstruktor angeben , dass Ihre Application
‚s ShutdownMode
sein sollte ShutdownMode
. OnLastWindowClose
.
public App()
{
ShutdownMode = ShutdownMode.OnLastWindowClose;
}
In XAML
Gehen Sie zu Ihrer App.xaml
Datei , dass VS 2012 standardmäßig erstellt (oder erstellen Sie es selbst) Die Wurzel ist ein Application
, geben Sie im Inneren , dass Ihr Application
‚s ShutdownMode
sein sollte ShutdownMode
. OnLastWindowClose
.
<Application x:Class="WpfApplication27.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml"
ShutdownMode="OnMainWindowClose">
Wenn es funktioniert, sind Sie fertig; Sie können aufhören zu lesen.
Schritt 2
Wenn das oben genannte nicht funktioniert hat (ich denke, Sie haben die WPF-Anwendung von Grund auf neu geschrieben), ist das Hauptfenster der Anwendung wahrscheinlich nicht als Hauptfenster bekannt. Geben Sie dies auch an.
In Code
Gehen Sie wie in Schritt 1 zum Konstruktor der Anwendung und geben Sie dies an Application
. MainWindow
Der Wert ist Ihr Window
:
MainWindow = mainWindow;
In XAML
Gehen Application
Sie wie in Schritt 1 zur XAML und geben Sie dies an Application
. MainWindow
Der Wert ist Ihr Window
:
MainWindow = "mainWindow";
Alternative
Ich glaube nicht , das ist der beste Ansatz ist, nur weil WPF nicht , dass Sie dies tun will (so hat es Application
‚s ShutdownMode
), aber man kann nur ein Ereignis / außer Kraft eine Event - Methode (OnEventHappened) verwenden.
Gehen Sie zur CodeBehind-Datei des MainWindow und fügen Sie Folgendes hinzu:
protected override void OnClosed(EventArgs e)
{
base.OnClosed(e);
App.Current.Shutdown();
}