Laden...

WPF-Anwendung beenden, wenn MainWindow schließt

Erstellt von Schlaftablette vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.108 Views
S
Schlaftablette Themenstarter:in
17 Beiträge seit 2016
vor 5 Jahren
WPF-Anwendung beenden, wenn MainWindow schließt

Hi

Ich habe ein Hauptfenster per XAML (MainWindow.XAML)
sowie ein einlesen_in-db.xaml - welches mich in einem eigenen Thread über das einlesen informieren soll.

Wenn ich das Hauptfenster schließe, soll sich das Programm beenden, leider läuft das einlesen-Fenster aber weiter.
Mit folgendem Code rufe ich dieses auf:

                einlesen_in_Datenbank form2 = new einlesen_in_Datenbank(but_einlesen_starten.Content.ToString());
                form2.dateiname = but_einlesen_starten.Content.ToString();
                form2.Show();

Ich übergebe sonst nur einen Dateinamen.

hier die beiden XAML:

<Window x:Class="Mist.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Mist"
        mc:Ignorable="d"
        Title="MainWindow" Height="428.507" Width="726.382">
    <Grid>
        <StackPanel x:Name="panel_nord" HorizontalAlignment="Left" Height="50" VerticalAlignment="Top" Orientation="Horizontal" />
        <StackPanel x:Name="panel_west" HorizontalAlignment="Left" VerticalAlignment="Top" Width="100" Margin="0,50,0,0"/>
        <Grid x:Name="haupt_Grid" HorizontalAlignment="Left" Height="319" Margin="105,55,0,0" VerticalAlignment="Top" Width="532"/>

    </Grid>
</Window>

und

<Window x:Class="Mist.gui.einlesen_in_Datenbank"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Mist.gui"
        mc:Ignorable="d"
        Title="einlesen_in_Datenbank" Height="300" Width="300">

        <Grid x:Name="einlesen_Grid"></Grid>

</Window>

Wie kann ich meinem Programm beibringen, daß wenn das MainWindow geschlossen wird, das gesamte Programm beendet werden soll ??

lg S.

1.029 Beiträge seit 2010
vor 5 Jahren
S
Schlaftablette Themenstarter:in
17 Beiträge seit 2016
vor 5 Jahren

Ich hab bereits einiges an Zeit investiert, bin aber bisher mit keinem Ansatz zurechtgekommen.

Danke nochmal, habs nun geschnallt.

In your MainWindow.xaml.cs, try doing this:


protected override void OnClosed(EventArgs e)
{
    base.OnClosed(e);
    Application.Current.Shutdown();
}
1.040 Beiträge seit 2007
vor 5 Jahren

Ich persönlich würde dann eher aus der Top-Antwort den zweiten Teil nehmen und

ShutdownMode="OnMainWindowClose"

in der Application.xaml setzen.