Ich habe eine Anwendung, die als "Application Desktop Toolbar" oder kurz appbar funktioniert. Es ist in WPF implementiert und Appbar-Funktionalität wird hinzugefügt, indem diese Richtlinie folgt: https://msdn.microsoft.com/en-us/library/windows/desktop/cc144177(v=vs.85).aspx.Eine AppBar-Anwendung funktioniert nicht korrekt in Windows 8.x/10 (Desktop-Arbeitsbereich wird nicht für mehrere Appbars reduziert)
Alles funktioniert in Windows 7 in Ordnung, aber in Windows 8.1 (oder wahrscheinlich in Windows 8.x) geschieht Folgendes:
- Die erste appbar auf einer Anzeigeseite angedockt wird korrekt angezeigt und Arbeits des Windows-Desktop Bereich wird entsprechend reduziert, so dass die Appbar keine Fenster überlappt.
- Die zweite Appbar, die auf der gleichen Seite des Displays wie die erste angedockt ist, wird an der richtigen Position angezeigt, aber der Arbeitsbereich des Windows-Desktops wird nicht verkleinert. Die zweite Appbar überlappt nun andere Fenster.
- Die dritte AppBar auf der gleichen Seite des Displays gedockt wirkt identisch mit dem zweiten
- Die vierte (und alle appbars danach) erhalten platziert über/unter dem vorherigen drei, appbars so effektiv zu verschwinden beginnen
Was 2 codewise geschieht in Schritt das ist (ausgetestet in Windows 8.1):
SHAppBarMessage ((int) ABMsg.ABM_QUERYPOS, ref BarData) aufrufen;
gibt die korrekt eingestellten Koordinaten für die neue Appbar zurück. Aber dann ruft
SHAppBarMessage ((int) ABMsg.ABM_SETPOS, ref barData);
scheint nicht "durchzulaufen", was bedeutet, dass es ok ausgeführt wird, und später wird das Fenster an der richtigen Position (definiert in barData) gesetzt. Aber der Arbeitsbereich wird nicht reduziert, was nach meinem Verständnis durch diesen Funktionsaufruf geschehen sollte.
Was in Schritt 4 passiert, ist, dass SHAppBarMessage ((int) ABMsg.ABM_QUERYPOS, ref barData) falsche Koordinaten zurückgibt, die die gleichen wie bereits vorhandene Appbars sind. Dies hat zur Folge, dass Appbars sich gegenseitig überlappen.
Das gleiche Problem tritt in Windows 10 auf, scheint aber mit ernsteren Nebenwirkungen: meine Appbar-Anwendung stürzt ziemlich schnell mit mehreren appbar-Instanzen ab, wodurch das ganze Windows-Betriebssystem für ein paar Minuten zum Stillstand kommt.
Ich habe das Web ziemlich ausführlich gesucht, aber habe keine Lösung gefunden. Fand diesen Artikel aber https://github.com/PhilipRieck/WpfAppBar/issues/4, wo die Symptome ziemlich ähnlich zu denen mit meiner App sind.
Jede Hilfe würde sehr geschätzt werden. Meine Vermutung ist, dass dies ein Fehler mit der SHAppBarMessage-API in Windows 8.x/10 ist. Aber wird nicht aufhören zu schauen, bis es bestätigt wird, so zu sein, oder noch besser, eine Lösung gefunden wird.
Hallo Jone, Irgendwelche Glück in dieser Frage? Ich sehe das auch gleich. Wir haben WPF AppBar-Anwendung, die in Win 7 gut funktioniert und Probleme in Win 10-Oberflächenmaschinen. –
Bisher keine Würfel .. – Jone