Laden...

Reihenfolge mehrerer Topmost-Windows festlegen?

Erstellt von Mallett vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.697 Views
M
Mallett Themenstarter:in
171 Beiträge seit 2012
vor 5 Jahren
Reihenfolge mehrerer Topmost-Windows festlegen?

Hallo,

ich habe zwei Windows, die Topmost=true gesetzt haben, dabei ist es notwendig, dass eines der Windows (Window A) immer vor dem anderen (Window B) liegt und beide Windows vor allen anderen Windows.

Ist es irgendwie möglich, den ersten Teil der Bedingung umzusetzen?
Derzeit ist es halt so, dass Window A hinter Window B rutscht, sobald man in B rein klickt, genau das soll nicht der Fall sein. Es darf aber auch nicht möglich sein, dass weitere Windows z.B. über die Taskleiste vor Window B rutschen, daher kann ich bei B Topmost auch nicht weg nehmen.

M
Mallett Themenstarter:in
171 Beiträge seit 2012
vor 5 Jahren

Weitere Anmerkung: Ich kann aus A auch kein Popup von B machen, da es zum Einen auch möglich sein muss, A aus B "heraus" zu bewegen und zum Anderen A auch an anderer Stelle noch benutzt wird.

5.658 Beiträge seit 2006
vor 5 Jahren

Diese Herangehensweise klingt nicht sehr empfehlenswert. Was genau hast du denn vor?

Willst du evtl. eine Art "Kiosksystem" entwickeln?

Weeks of programming can save you hours of planning

M
Mallett Themenstarter:in
171 Beiträge seit 2012
vor 5 Jahren

Da magst Du Recht haben, die Herangehensweise ist allerdings vorgegeben, da die Anwendung genau das können muss, was eine alte C++ Anwendung auch macht. Es handelt sich dabei um eine Art Bildschirmlupe, wobei sich die zu vergrößernden Ausschnitte auf verschiedenen, sich situationsabhängig überlappenden Windows befinden.

Die Lupenfenster müssen immer über dem Fenster mit den Originaldaten liegen, diese Fenster müssen aber auch immer übereinander liegen.

Ich hab also bspw. ein Fenster mit Originaldaten, darüber x Lupenfenster, darüber ein weiteres Fenster mit Originaldaten, darüber wieder x Lupenfenster usw.

5.658 Beiträge seit 2006
vor 5 Jahren

Lupenfenster? 🤔

Weeks of programming can save you hours of planning

M
Mallett Themenstarter:in
171 Beiträge seit 2012
vor 5 Jahren

Naja, ein kleines Fenster, welches einen Ausschnitt aus dem darunter liegenden Fenster vergrößert darstellt halt. Eine Lupe halt.

Spielt es eine Rolle, wofür ich es brauche?

5.658 Beiträge seit 2006
vor 5 Jahren

Sowas macht man aber nicht mit Fenstern. Gerade WPF bietet dafür wesentlich bessere Möglichkeiten, z.B. Shader-Effekte.

Weeks of programming can save you hours of planning

M
Mallett Themenstarter:in
171 Beiträge seit 2012
vor 5 Jahren

Ich kann das jetzt nicht weiter ausführen, aber die Lupen nutzen die IPL um medizinische Aufnahmen zu vergrößern. Da komme ich mit Shader-Effekten leider nicht weit.

Das Thema kann aber zu, ich habe es selbst gelöst, indem ich einen ZOrderManager geschrieben habe, bei dem sich alle relevanten Windows registrieren, und der dann dafür sorgt, dass zu jedem Zeitpunkt die korrekten Windows als Topmost markiert werden.

Ich hätte zwar erwartet, dass WPF da einen einfacheren Weg anbietet (im alten C++ Code ist das ein einfaches integer property), aber seis drum, es funktioniert zumindest jetzt wie es soll.