@suchja Hier meine Antwort zur Frage: WPF-1: Wie öffne ich ein Unterfenster?
In WPF sind auch alle Oberflächenelemente (wie z.B. Window) ganz "normale" Objekte. Daher können auch Instanzen eines Window im Quellcode angelegt werden. Um nun also aus einem Fenster (nennen wir es MainWindow) ein anderes Fenster (nennen wir es SubWindow) zu öffnen, braucht es folgende Schritte:
Ein neues Window mit Namen SubWindow erstellen (z.B. im ProjektmappenexplorerHinzufügen im Kontextmenü und dann Fenster wählen) und mit dem gewünschten Inhalt füllen. (Siehe Beispielcode hier)
Dem MainWindow einen Button inkl. Click-Event und Eventhandler hinzufügen. (Siehe Beispielcode hier)
Im Eventhandler im MainWindow-Quellcode eine Instanz vom SubWindow erstellen und darauf Show oder ShowDialog aufrufen. (siehe Beispielcode hier)
Bonus-Info:
Der Unterschied zwischen Show und ShowDialog liegt darin, dass das MainWindow bei der Verwendung von ShowDialog nicht mehr angesprochen werden kann, bis das SubWindow wieder geschlossen wurde. Dieses Verhalten bei Fenstern wird auch als modal bezeichnet.
Wird das SubWindow über Show geöffnet können beide Fenster unabhängig von einander bedient werden.
Wichtig ist dabei, dass WPF nicht grundsätzlich eine Beziehung zwischen den Fenstern herstellt. D.h. öffnest du ein Unterfenster via Show und schließt das "Hauptfenster", dann läuft die Anwendung weiter und nur das Unterfenster wird angezeigt. Um dieses zu beheben kann du nach dem Anlegen des Unterfensters eine "Eltern-Kind-Beziehung" zwischen den beiden Fenstern definieren (über die Owner Eigenschaft - siehe Beispiel). Dann wird beim Schließen des Hauptfensters auch das Unterfenster geschlossen.
@suchja Hier meine Antwort zur Frage: WPF-1: Wie öffne ich ein Unterfenster?
In WPF sind auch alle Oberflächenelemente (wie z.B.
Window
) ganz "normale" Objekte. Daher können auch Instanzen einesWindow
im Quellcode angelegt werden. Um nun also aus einem Fenster (nennen wir esMainWindow
) ein anderes Fenster (nennen wir esSubWindow
) zu öffnen, braucht es folgende Schritte:Window
mit NamenSubWindow
erstellen (z.B. imProjektmappenexplorer
Hinzufügen im Kontextmenü und dannFenster
wählen) und mit dem gewünschten Inhalt füllen. (Siehe Beispielcode hier)MainWindow
einen Button inkl.Click
-Event und Eventhandler hinzufügen. (Siehe Beispielcode hier)MainWindow
-Quellcode eine Instanz vomSubWindow
erstellen und daraufShow
oderShowDialog
aufrufen. (siehe Beispielcode hier)Bonus-Info: Der Unterschied zwischen
Show
undShowDialog
liegt darin, dass dasMainWindow
bei der Verwendung vonShowDialog
nicht mehr angesprochen werden kann, bis dasSubWindow
wieder geschlossen wurde. Dieses Verhalten bei Fenstern wird auch als modal bezeichnet. Wird dasSubWindow
überShow
geöffnet können beide Fenster unabhängig von einander bedient werden. Wichtig ist dabei, dass WPF nicht grundsätzlich eine Beziehung zwischen den Fenstern herstellt. D.h. öffnest du ein Unterfenster viaShow
und schließt das "Hauptfenster", dann läuft die Anwendung weiter und nur das Unterfenster wird angezeigt. Um dieses zu beheben kann du nach dem Anlegen des Unterfensters eine "Eltern-Kind-Beziehung" zwischen den beiden Fenstern definieren (über dieOwner
Eigenschaft - siehe Beispiel). Dann wird beim Schließen des Hauptfensters auch das Unterfenster geschlossen.