Seite schließen innerhalb von Rahmen in einer WPF
Habe ich ein Fenster und ein Bild in es. in diesem Rahmen, öffne ich bei vielen Seiten die ich möchte schließen, indem Sie auf die Schaltfläche "Schließen",
das problem ist die Seite nicht sehen können, in meinem Bild habe ich versucht zu schreiben, ein Ereignis, eine schließen-Schaltfläche in eine Seite Methode
zum ausführen einer anderen Veranstaltung in einem Haupt-Fenster, weil es einfach auf ein Haupt-Fenster, um zu sehen, ein Rahmen , aber es funktioniert nicht. hier ist mein code in eine Seite
private void closebt_MouseDown(object sender, MouseButtonEventArgs e)
{
var main = new MainWindow();
main.Exitbt_PreviewKeyDown(main.Exitbt, e);
}
und hier ist ein code in einem Hauptfenster
internal void Exitbt_PreviewKeyDown(object sender, MouseButtonEventArgs e)
{
ProjectorFrame.Content = "";
MessageBox.Show("done");
}
Obwohl die Nachricht zeigen, aber es ist nicht die Seite schließen
bitte helfen Sie mir.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß nicht, warum, Sie erstellen anderen MainWindow-Instanz innerhalb der closebt_MouseDown hander, aber ich hoffe, dass der folgende code würde für Sie hilfreich:
Bearbeitet:
Ich soll das Hauptfenster-Objekt Ihrer Anwendung ist
MainWindow
, also dachte ich, dass der Vorherige code bekommen könnte Ihrer Bewerbung Fenster schließen.Aber wie Sie bemerkt,
Application.Current.MainWindow
unterscheidet sich vonMainWindow
, und diemain
wurdenull
.Deshalb denke ich, dass der einfache Weg, um die wichtigsten Window-Objekt ist, erstellen Sie den folgenden Konstruktor in der page-Klasse zu halten Referenz:
Erstellen Sie dann diese Instanz mit übergeben Hauptfenster-Objekt:
Indem Sie das tun, können Sie das Hauptfenster-Objekt.
So, jetzt können Sie schließen Sie Ihre Fenster-Objekt wie folgt:
Application.Current.MainWindow
alsMainWindow
. Wenn Sie wirklich brauchen, um erstellen Sie neue MainWindow-Objekt enthält, können Siemain.Close();
nachmain.Exitbt_PreviewKeyDown(main.Exitbt, e);
im code.as
- operator können Sie überprüfen, diese MS Developer Network-Dokument.Application.Current.MainWindow
- Eigenschaft gibt die Hauptfenster-Objekt der Anwendung. Ich dachte, es ist das gleiche mit MainWindow, weil der code. Bitte versuchen Sie, einen Haltepunkt an derMainWindow main = Application.Current.MainWindow as MainWindow;
Zeile, und überprüfen Sie den Wert der Eigenschaft.