Wie skalieren Sie die Titelleiste in einer DPI-fähigen Win-Anwendung?

Ich mache meine App für jeden Monitor dpi-fähig, indem ich @ einstell<dpiAware>True/PM</dpiAware> in der Manifestdatei. Ich kann mit dem Prozess-Explorer überprüfen, ob dies tatsächlich funktioniert, oder indem ich GetProcessDpiAwareness aufrufe.

Dies funktioniert alles gut und ich kann alles im Client-Bereich gut in meinem Code skalieren. Mein einziges Problem ist jedoch, dass die Titelleiste und alle Systemmenüs entweder zu groß oder zu klein werden, wenn ich meine App von einem System-dpi-Monitor auf einen Nicht-System-dpi-Monitor ziehe. Dies ist bei den meisten integrierten Apps (z. B. Calc, Edge-Browser usw.) nicht der Fall. Sie müssen also entfernt sein, um sie ordnungsgemäß skalieren zu können. Hat jemand wie die Entwickler bei MS das gemacht haben?

Der Screenshot unten sollte mein Problem besser erklären. Beachten Sie auch, dass der Abstand zwischen den Schaltflächen "Schließen", "Min." Und "Max." Bei Skalierung unterschiedlich ist (96 dpi).

Sample App Ich hänge eine sehr einfache App an, die dpi-fähig für jeden Monitor ist.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage