drpingoo
Erfahrenes Mitglied
Hallo zusammen,
Ich habe eine Frage zum MainWindow-Schliessen. Ich möchte das MainWindow schliessen, wenn ein gewisses Event in einer anderen Klasse stattgefunden hat (Der Einfachheit halber als Bsp wird hier einfach die Fkt TestFunction() aufgerufen und damit hat sichs). Leider schliesst das MainWindow bei mir nicht, sondern das Programm läuft einfach weiter. Ich hab mal kurz grob programmiert, wie das in etwa aussehen soll, um euch nicht mit dem ganzen Code aus dem eigtl Projekt zuzubombadieren. Wenn ich hier this.Close aufrufe, bekomme ich folgende InvalidOperationException: Visibility kann nicht auf "Visible" festgelegt und Show, ShowDialog, Close oder WindowInteropHelper.EnsureHandle können nicht aufgerufen werden, während ein Window geschlossen wird
Mein Code:
Ich hoffe, ihr könnt mir weiterhelfen.
Danke
Ich habe eine Frage zum MainWindow-Schliessen. Ich möchte das MainWindow schliessen, wenn ein gewisses Event in einer anderen Klasse stattgefunden hat (Der Einfachheit halber als Bsp wird hier einfach die Fkt TestFunction() aufgerufen und damit hat sichs). Leider schliesst das MainWindow bei mir nicht, sondern das Programm läuft einfach weiter. Ich hab mal kurz grob programmiert, wie das in etwa aussehen soll, um euch nicht mit dem ganzen Code aus dem eigtl Projekt zuzubombadieren. Wenn ich hier this.Close aufrufe, bekomme ich folgende InvalidOperationException: Visibility kann nicht auf "Visible" festgelegt und Show, ShowDialog, Close oder WindowInteropHelper.EnsureHandle können nicht aufgerufen werden, während ein Window geschlossen wird
Mein Code:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Closing
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
///
public partial class MainWindow : Window
{
Test test = new Test();
public MainWindow()
{
InitializeComponent();
test.SetWindow(this);
test.testEvent += new System.ComponentModel.CancelEventHandler(CloseWindow);
while (true)
{
test.TestFunction();
}
}
private void CloseWindow(object sender, System.ComponentModel.CancelEventArgs e)
{
this.Close();
}
}
public class Test
{
public event System.ComponentModel.CancelEventHandler testEvent;
public MainWindow window;
public void TestFunction()
{
testEvent(window, new System.ComponentModel.CancelEventArgs());
}
public void SetWindow(MainWindow win)
{
window = win;
}
}
}
HTML:
<Window x:Class="Closing.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
Closing="CloseWindow">
<Grid>
</Grid>
</Window>
Ich hoffe, ihr könnt mir weiterhelfen.
Danke