Laden...

WPF Fenster löschen bzw. vernünftige Verwaltung von Fenstern

Erstellt von EyeTrackJack vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.423 Views
E
EyeTrackJack Themenstarter:in
35 Beiträge seit 2019
vor 5 Jahren
WPF Fenster löschen bzw. vernünftige Verwaltung von Fenstern

Hallo,

ich programmiere eine Anwendung, die recht viele Fenster verwendet, die vom Benutzer hinzugefügt werden. Sie dienen als anguckbare Schaltflächen für einen Eyetracker.

Ich füge jedes Fenster zu einer Liste hinzu, um Zugriff darauf zu haben. Wenn ich ein neues hinzufüge, wird eine Instanz in dieser Liste abgelegt und dann wird es einfach angezeigt.

List<InteractorWin> InterWindowList;

Jetzt ist erstmal meine Frage, wie ich solche Fenster wieder entferne. Reicht es, wenn ich .Close(); aufrufe und sie aus der Liste entferne? Oder muss ich da noch irgendwas beachten?

Ist das Vorgehen allgemein gut, oder gibt es da was besseres? Vielleicht nicht auf Fenstern basierend? Was wichtig ist, ist die Möglichkeit, diese Flächen beliebig auf dem Bildschirm zu verteilen, die Größe verändern etc.

Über Tipps würde ich mich freuen. Auch in die Richtung, welche Themen ich durchnehmen sollte.

Gruß.
Tobias

16.807 Beiträge seit 2008
vor 5 Jahren

Also allein mit der Beschreibung ist es für potentielle Helfer fast unmöglich zu verstehen, was Du da vor Dir hast.
Versetzt Dich mal in die Lage, dass wir Deine Umgebung nicht kennen - und les Dir dann mal Deinen Text durch. =)

Das einzige, was man an dem Text halbwegs beantworten kann bzw. sich herleiten kann ist, dass Du wohl das Aufräumen von Referenzen meinst, wenn etwas aus der Liste entfernt wird.
Und ja, sobald keine Referenz mehr existiert räumt die Runtime das Fenster auf.

Da man - oder zumindest ich - aber Deine Umgebung quasi null verstehe, weil ich sie nicht vor mir habe und der Text hier.... ausbaufähig ist, kann zumindest ich überhaupt nicht urteilen, ob Dein Ansatz gut ist.
Was Du mit Flächen meinst... no idea... 🤔

H
38 Beiträge seit 2019
vor 5 Jahren

Hey,

soweit ich deine Frage verstanden habe, denke ich es reicht vollkommen aus das Fenster mit .close() zu schließen (https://stackoverflow.com/questions/568408/what-is-the-correct-way-to-dispose-of-a-wpf-window) und aus der Liste zu entfernen.

Dein Satz:

Was wichtig ist, ist die Möglichkeit, diese Flächen beliebig auf dem Bildschirm zu verteilen, die Größe verändern etc.

versteh ich auch nicht vl. kannst du das ja nochmal genauer erläutern.

C
2.121 Beiträge seit 2010
vor 5 Jahren

Fenster verwalten ist kompliziert. Reicht es nicht auch, ein einziges bildschirmfüllendes Fenster zu haben und auf dem viele verschiedene Grafikobjekte anzuordnen?

5.657 Beiträge seit 2006
vor 5 Jahren

Es geht um Eye-Tracking. Wahrscheinlich sollen irgendwelche Grafik-Objekte irgendwo auf dem Bildschirm angezeigt werden, um dann die Augenbewegungen des Betrachters zu messen.

Wenn das so ist, empfehle ich ein Vollbild-Fenster mit einer Canvas, auf der dann mittels DataBinding die Objekte positioniert werden. Siehe dazu [Artikel] MVVM und DataBinding

Weeks of programming can save you hours of planning