2016-06-13 13 views
0

Ich habe ein Problem mit einem meiner UserControl Windows. Ich habe ein MainWindow und wenn eine bestimmte Situation erscheint, öffnet sich ein anderes UserControl. Es hat zwei Buttons, die einen Befehl senden und danach sollte es geschlossen werden. Jetzt öffnet es nur das Fenster und sendet den Befehl, aber schließt es nicht danach. Ich hoffe du kannst mir helfen. Code: XAML: UserControl Fenster wird nicht geschlossen

C#: -Code das Usercontrol zu öffnen:

Window window = new Window(); 
window.Content = new MsgBox(); 
window.ShowDialog(); 

Button-Erklärung: öffentliche DelegateCommand OkBtn {get; einstellen; }

Buttonfunction zu Schaltfläche hinzugefügt:

OkBtn = new DelegateCommand<object>(OkBtnFkt); 

In diesem Buttonfunction es so etwas wie sein sollte: window.close();

Was habe ich versucht:

Window.Close(); Sendet das Window.close über den Dispatcher an die Benutzeroberfläche

+0

Jeder Code, den Sie anzeigen können? – Nzc

+0

Hinzugefügt Code – Evosoul

+0

Sie zeigen immer noch nicht genug Codes für uns, um zu verstehen, was vor sich geht. Zum Beispiel, wie schließt Ihre 'MsgBox' (vermutlich ein UserControl) das übergeordnete Element (Window)? Und wenn Sie eine Messagebox mit benutzerdefiniertem Look möchten, warum unterteilen Sie nicht Fenster statt UserControl? – Jai

Antwort

0

Ich fand eine Antwort. Dieser Beitrag hatte die Antwort für mich: http://www.codeproject.com/Questions/91746/Close-WPF-user-control-inside-WPF-form-application

+0

Also am Ende ist es das Problem nicht in der Lage zu sein, einen Verweis auf das Elternfenster von usercontrol zu bekommen? – Jai

+0

Ja, irgendwie. Die Anwendung dachte, dass sie sich immer noch im Hauptfenster befand, so dass der Schließen-Aufruf nicht ausgeführt werden konnte. Ich musste das neu erstellte Fenster aufgrund des Befehlsparameters des Buttons auswählen. – Evosoul

0

Sie können das DialogResult des Fensters festlegen. Was Sie eigentlich haben, ist ein Fenster mit einem UserControl. Sie könnten ein MsgBoxWindow von Window ableiten. Platziere deine Steuerung und eine Schließen-Schaltfläche innen. Wenn Sie auf die Schaltfläche Schließen klicken, können Sie das DialogResult festlegen.

https://msdn.microsoft.com/en-us/library/system.windows.window.dialogresult(v=vs.110).aspx

Wie dem auch sei, warum Sie nicht MessageBox verwenden?

+0

Mein "Fenster" ist ein UserControl und ich muss es schließen. Ich habe auch einen Code in dieser Frage hinzugefügt – Evosoul

+0

Ich brauche eine gestaltete Messagebox. Es sollte für verschiedene Dinge verwendet werden. Aber wahr, ich möchte einfach eine entworfene MessageBox – Evosoul

Verwandte Themen