WPF Modales Fenster



  • Hallo

    Ich habe eine WPF Anwendung. Diese WPF Anwendung beinhaltet wiederrum ein WPF Control. Im Control befindet sich wiederrum ein Window.

    Dieses Window zeige ich nun über ShowDialog an. Das Fenster ist Modal und wird im Vordergrund angezeigt. Wechsle ich nun in eine andere Appliaktion und wieder zurück, ist das modale Fenster hinter dem Hauptfenster. Dieses erreiche ich nun nur wieder über Alt-Tab. Da ich das Fenster nicht in der Taskleiste anzeige. Wie eigentlich in jedem Einstellungsdialog der Fall. Nur bei anderen Applikationen bleibt das Modale Fenster immer über dem Hauptfenster.

    Kann man das irgendwo einstellen. Und wieso ist das nicht Standard?



  • Hallo,

    Eigenschaft Owner setzen, s.a. Hinweise zu http://msdn.microsoft.com/de-de/library/system.windows.window.showdialog.aspx



  • Ok. Und wie setze ich nun den Owner aus meinem DialogService heraus?



  • Keiner eine Idee?



  • Du wirst doch irgendwo das Hauptfenster als Referenz halten.
    Ansonsten übergib doch einfach die Application.MainWindow-Eigenschaft.



  • Sorry aber keine Ahnung woher ich das bekomme.

    Also nochmals. Ich habe eine WPF Anwendung. Die dient eigentlich momentan nur als Container für mein WPF Control. Das ich dort einfach anzeige.

    Nun habe ich in meinem Control eine MainView und als Datencontext ein MainViewModel.

    In diesem MainViewModel rufe ich nun über ein Command den Modalen Dialog auf. Das ganze läuft über einen DialogService.

    DialogService

    public bool ShowWindow()
    {
           Dialog.ShowDialog();
    
           return Dialog.DialogResult.HasValue && Dialog.DialogResult.Value;
    }
    

    Wo setze ich hier nun den Owner?

    Dialog.Owner = Application.MainWindow; // Hier kennt er MainWindow nicht.
    

    Beim Aufruf von ShowWindow den Owner zu übergeben hat auch nicht funktioniert.

    MainViewModel

    dialogService.ShowWindow(Application.MainWindow);
    

    Denn im MainViewModel keinnt er Application.MainWindow auch nicht.



  • Muß ich dir alles vorkauen?

    Dialog.Owner = Application.Current.MainWindow;
    

    2 sec "googlen": http://stackoverflow.com/questions/607370/wpf-how-do-i-set-the-owner-window-of-a-dialog-shown-by-a-usercontrol



  • Muß ich dir alles vorkauen?

    Jo kannst von mir aus auch gleich runterschlucken.
    Gereizt? Heute noch nicht zum Zug gekommen. Ein Ohhhh von mir.

    Trotzdem danke für die Antwort.


Log in to reply