Laden...

TreeView Icons werden blau umrandet! Warum ?

Erstellt von Ulf# vor 16 Jahren Letzter Beitrag vor 15 Jahren 3.126 Views
U
Ulf# Themenstarter:in
170 Beiträge seit 2006
vor 16 Jahren
TreeView Icons werden blau umrandet! Warum ?

Hallo C#community,

ich habe ein Treeview mit Icons versehen, welche ich in Photoshop erstellt habe.
Der Hintergrund der Icons ist transparent. Nun lade ich die Icons in das Treeview mit einer Imagelist, nur wenn ich die Anwendung starte sind die Icons blau umrandet.

Woran kann das liegen ?

Gruß
Ulf#

Ein Ziel ist nicht immer zum Erreichen da,
oft dient es nur zum richtigen Zielen...

Bruce Lee

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo Ulf#,

stimmt die in der ImageList eingestellte Icon-Größe nicht mit der tatsächlichen Icon-Größe überein?

herbivore

U
Ulf# Themenstarter:in
170 Beiträge seit 2006
vor 16 Jahren

Hallo herbivore,

die Größen Stimmen schon überein, beides ist 16x16

Ein Ziel ist nicht immer zum Erreichen da,
oft dient es nur zum richtigen Zielen...

Bruce Lee

1.665 Beiträge seit 2006
vor 16 Jahren

Normal sollte es keine Probleme geben, es sei denn...

  • die Farbtiefe der ImgeList ist zu niedrig
  • oder du verbaust dir das Bild beim erstellen

Setz auf jeden Fall mal die Farbtiefe auf 32 bit.

U
Ulf# Themenstarter:in
170 Beiträge seit 2006
vor 16 Jahren

Also die Farbtiefe ist auch 32 ,..weiss nicht woran es liegen kann ??

Ein Ziel ist nicht immer zum Erreichen da,
oft dient es nur zum richtigen Zielen...

Bruce Lee

0
767 Beiträge seit 2005
vor 16 Jahren

transparenz wird da nicht 100% unterstützt. zumindest keine teiltransparenz (also 50% transparent)

loop:
btst #6,$bfe001
bne.s loop
rts

U
Ulf# Themenstarter:in
170 Beiträge seit 2006
vor 16 Jahren

Heisst das ich muss den transparenten mit weiss zu 50% füllen ?

Also in Photoshop Hintergrundebene mit weiss füllen und deckkraft auf 50% stellen ?

Ein Ziel ist nicht immer zum Erreichen da,
oft dient es nur zum richtigen Zielen...

Bruce Lee

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo Ulf#,

nein, das heißt wohl gerade, dass nur 0% und 100% Transparenz zulässig sind, keine Zwischenstufen.

herbivore

0
767 Beiträge seit 2005
vor 16 Jahren

(antwort auf ulf, nicht auf herbivore - sonst wirds nochmal missverstanden)

nein. genau das wird nicht unterstützt (hab mich superschlecht ausgedrückt)

du kannst nur 100% transparenz setzen oder gar keine.

welches bildformat benutzt du?
bei .jpg gibts sowieso keine transparenz
bei .gif kann man eine farbe definieren, die dann transparent sein soll, die ist dann komplett durchsichtig - das funktioniert auch bei der imagelist.

bei .png kann jeder pixel zwischen 0 undn 100% durchsichtig sein. und alles >0 und <100 ist bei mir dann blau geworden.

also entweder ganz durchsichtig machen, oder gar nicht. sonst wirds blau.

wenn du im fotoshop arbeitest, den hintergrund komplett entfernst (durchsichtig, schachbrett-darstellung), und dann mit antialiasing eine linie draufmalst, sind die antialiasten (grins) pixel teilweise transparent. die werden dann blau.

in dem fall müsstest du vorher wissen auf welchen hintergrund du dein img zeichnen wirst, und dann im photoshop diesen hintergrund verwenden.

loop:
btst #6,$bfe001
bne.s loop
rts

420 Beiträge seit 2007
vor 15 Jahren

Hallo,

ich habe das (fast) gleich Problem.
Ich benutze mein Treeview als Verzeichnisbaum. Die Icons für Ordner, Laufwerke, Wechselmedien etc werden automatisch von Windows geladen.

Ich bekomme die Icons und wandel sie in eine 16x16 große Bitmap um. Nun wird bei mir auch der blaue Rand angezeigt.. am besten wäre doch eigentlich, blau als transparente farbe zu setzen.. aber ich glaube das geht im treeview nicht.

Kann mir jemand weiterhelfen?
Danke!

Gruß Dennis

Gelöschter Account
vor 15 Jahren

wobei hast du konkret probleme? 0815Coder hat die lösung bereits präzise formuliert.

420 Beiträge seit 2007
vor 15 Jahren

Ich lade die Icons ja zur Laufzeit, kann sie also nicht vorher bearbeiten. Oder habe ich etwas übersehen?

Gelöschter Account
vor 15 Jahren

wie skalierst du die icons?

420 Beiträge seit 2007
vor 15 Jahren

                string shellFile = Path.Combine(Environment.GetFolderPath((Environment.SpecialFolder)0x25), "shell32.dll").PadRight(0x100, '\0');
                Icon icon = Icon.FromHandle(ExtractIcon(0, shellFile, iconNr));

                return new Bitmap(icon.ToBitmap(), new Size(16, 16));

Ich benutze die Icons auf diese Weise auch in meinem DataGridView, und dort funktioniert es.