Laden...

NotifyIcon Fehler beim Icon

Erstellt von Fehler vor 2 Jahren Letzter Beitrag vor 2 Jahren 522 Views
F
Fehler Themenstarter:in
22 Beiträge seit 2022
vor 2 Jahren
NotifyIcon Fehler beim Icon

Moin zusammen,

ich hab da mal ein Problem!

Wenn ich ein Image aus der PictureBox gespeichert habe (beide Beispiele):


1) pb.Image.Save(sPfad, System.Drawing.Imaging.ImageFormat.Png);
2) pb.Image.Save(sPfad, System.Drawing.Imaging.ImageFormat.Icon);

und das bild.ico dann als NotifyIcon nutzen möchte:


xNI.Icon = new System.Drawing.Icon(@sPfadZumIcon);

Bekomme ich eine Fehlermeldung:

Fehlermeldung:
System.ArgumentException: "Das Argument picture muss ein Bild sein, das als Icon verwendet werden kann."

Allerdings scheint das Logo an sich korrekt zu sein, weil wenn ich das selbe Bildchen als .png speichere und mit einem Tool PNG2ICO umwandeln lasse, kann ich dieses doch nutzen....
Habe das Bild als 16x16 und 32x32 gespeichert... Außerdem kann ich das bild.ico mit einem Ico-Bearbeitungstool öffnen und es wird korrekt angezeigt.
Was mache ich falsch?

Viele Grüße
Christian

Sarkasmus ist die Kunst, Menschen einen Spiegel vorzuhalten. Nur merken es viele nicht.

4.939 Beiträge seit 2008
vor 2 Jahren

Funktioniert es denn mit einem anderen Icon?
Schau auch mal in C#: Argument 'picture' must be a picture that can be used as an Icon.

Du kannst aber auch direkt das Icon aus dem Image zuweisen (ohne als Datei zu speichern):


Bitmap bitmap = new Bitmap(image, image.Size);
notifyIcon.Icon = Icon.FromHandle(bitmap.GetHicon()); 

16.835 Beiträge seit 2008
vor 2 Jahren

Um auszuschließen, dass es an der Dateiverarbeitung liegt, weiß dem NotifyIcon einfach den Stream vom Image zu.

F
Fehler Themenstarter:in
22 Beiträge seit 2022
vor 2 Jahren

Ja mit anderen Bildern (.ico) klappt es, auch wenn ich meins von png nach ico umwandeln lasse, mit dem direkten zuweisen ist auch eine gute Idee. Probiere ich noch mal aus.

Wie weise ich den Stream den Image zu?

Sarkasmus ist die Kunst, Menschen einen Spiegel vorzuhalten. Nur merken es viele nicht.

16.835 Beiträge seit 2008
vor 2 Jahren

Siehe Beitrag von Th69, ansonsten hilft auch ein Blick in die Doku - dafür ist sie da.
NotifyIcon Klasse (System.Windows.Forms) bzw https://docs.microsoft.com/de-de/dotnet/api/system.drawing.icon.-ctor?view=dotnet-plat-ext-6.0

F
Fehler Themenstarter:in
22 Beiträge seit 2022
vor 2 Jahren

Mit der direkten Zuweisung funktioniert das direkt ohne Fehler 👍

Sarkasmus ist die Kunst, Menschen einen Spiegel vorzuhalten. Nur merken es viele nicht.