Das Taskleistensymbol verschwindet, wenn WindowChrome unter Windows 8.1 verwendet wird

8

Ich habe einige Probleme mit einem eigenen gestyltem WPF-Fenster unter Windows 8.1. Ich habe ein einfaches transparentes WPF-Fenster mit einem WindowChrome für Standard-Windows-Ziehverhalten geschrieben:

%Vor%

Windows 8.1 Einstellungen:

  • 2 Monitore mit erweitertem Desktop
  • Taskleiste nur auf dem primären Desktop sichtbar

Repro:

  1. Starten Sie die WPF-Anwendung
  2. Verschiebe das Fenster auf dem sekundären Bildschirm
  3. Maximieren Sie das Fenster auf dem sekundären Bildschirm (z. B. durch Andocken des Fensters oben)
  4. Wiederherstellen und ziehen Sie das Fenster vom sekundären Bildschirm auf den primären Bildschirm

- & gt; Das Taskleistensymbol verschwindet genau dann, wenn die Maus auf dem Hauptbildschirm erscheint!

Wenn Sie die gleiche Wiederholung wiederholen, erscheint das Symbol erneut.

Ich habe auch versucht, .NET 4.5 oder .NET 4.5.1 zu verwenden!

Kann jemand dieses Problem erklären?

Danke!

    
Thomas H. 22.01.2014, 18:23
quelle

2 Antworten

4

Nach einigem Versuchs- und Fehler-Debugging habe ich herausgefunden, dass die Fenstersichtbarkeit auf "false" gesetzt ist, dann aktualisiere das Systemmenü und setze danach auf "true".

Ich denke, das ist nicht notwendig und erzeugt dieses unangenehme Problem

Hier ist die Methode bei WindowChromeWorker

%Vor%

so können Sie versuchen, einen Blick in meinen Zweig von

zu werfen

WPF-Shell-Integrationsbibliothek (Ex) tended Edition

Originalquelle kann hier

gefunden werden

auch hier ist eine kleine Testanwendung

hoffe das hilft

    
punker76 11.04.2014, 12:25
quelle
2

Es scheint, dass dieser Fehler nur auftritt, wenn Sie WindowStyle="None" auf Ihrem WPF-Fenster setzen. Darüber hinaus unterbricht diese Option auch moderne Apps, die bei Maximierung Ihrer Anwendung zur Seite gerissen werden. Es mag seltsam erscheinen, aber das Setzen von WindowStyle ist nicht erforderlich, wenn Sie WindowChrome verwenden, um Fensterrahmen zu entfernen, damit Sie sie sicher überspringen können.

Der einzige Vorbehalt ist, dass Sie AllowTransparency nicht verwenden können (aber es ist in Ordnung, da Sie es aufgrund umfangreicher Leistungsprobleme mit dieser Option nicht an erster Stelle verwenden sollten).

    
ghord 30.03.2014 22:05
quelle