Ich habe eine WPF-Desktop-Anwendung, die einige Benachrichtigungen mit:
pusht NotifyIcon.ShowBalloonTip(,,,ToolTipIcon.None)
.
Das Problem ist:
Windows 10 verwendet den neuen Stil "Windows 10 Rechteck mit Bild und Text" für Sprechblasenbenachrichtigungen (ich weiß nicht, wie genau es heißt).
Wenn ich use ToolTipIcon.None
-Parameter, erhält es mein Anwendungssymbol, das auf NotifyIcon.Icon
-Eigenschaft gesetzt wurde und es in dieser Ballon-Benachrichtigung anzeigt. Und dieses Symbol ist verschwommen / gestreckt (wie ein zu kleines Symbol wurde aufgenommen und auf die Größe gestreckt, die für dieses Ballonbild benötigt wird).
Meine ico-Datei enthält mehrere Größen: 16*16, 32*32, 128*128, 256*256
usw. Ich habe bereits versucht, Icon-Dateien mit nur einer 128*128
size zu setzen, aber es hat nicht funktioniert.
Sollte es überhaupt funktionieren?
Danke.
Die folgende Klasse sollte ein glattes, großes Symbol in der Sprechblase auf Windows 10 anzeigen. Es ist keineswegs poliert, aber es sollte das Konzept beweisen. Ein guter Teil des Codes wird direkt aus der dekompilierten Microsoft NotifyIcon-Klasse kopiert.
Der Schlüssel wechselt zwischen der ursprünglichen NotifyIcon-Klasse und dies sind:
NOTIFYICONDATA.hBalloonIcon
member. nOTIFYICONDATA.dwInfoFlags = NIIF_LARGE_ICON | NIIF_USER
anstelle von NIIF_NONE
. Sie können die Besonderheiten der NOTIFYICONDATA-Struktur hier lesen , aber das Wesentliche ist:
hBalloonIcon
wurde in Vista hinzugefügt, speziell für die Verwendung außerhalb der Taskleiste. NIIF_USER
sagt, das Symbol in hBalloonIcon
als Ballonsymbol zu verwenden. NIIF_LARGE_ICON
sagt, dass das Symbol des Ballons groß sein sollte. NotifyIconLarge-Klasse:
%Vor%Deklarieren Sie es irgendwo:
%Vor%Dann benutze es so:
%Vor%Wenn Sie fertig sind, entfernen Sie das Taskleistensymbol:
%Vor%Tags und Links windows icons notifyicon