Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Reihenfolge mehrerer Topmost-Windows festlegen?
Mallett
myCSharp.de - Member



Dabei seit:
Beiträge: 176

Themenstarter:

Reihenfolge mehrerer Topmost-Windows festlegen?

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Mallett
myCSharp.de - Member



Dabei seit:
Beiträge: 176

Themenstarter:

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5992
Herkunft: Leipzig

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Mallett
myCSharp.de - Member



Dabei seit:
Beiträge: 176

Themenstarter:

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Mallett am .
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5992
Herkunft: Leipzig

beantworten | zitieren | melden

Lupenfenster?
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
Mallett
myCSharp.de - Member



Dabei seit:
Beiträge: 176

Themenstarter:

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5992
Herkunft: Leipzig

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Mallett
myCSharp.de - Member



Dabei seit:
Beiträge: 176

Themenstarter:

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Mallett am .
private Nachricht | Beiträge des Benutzers