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
Hallo Ulf#,
stimmt die in der ImageList eingestellte Icon-Größe nicht mit der tatsächlichen Icon-Größe überein?
herbivore
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
Normal sollte es keine Probleme geben, es sei denn...
Setz auf jeden Fall mal die Farbtiefe auf 32 bit.
> Codejunky <
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
transparenz wird da nicht 100% unterstützt. zumindest keine teiltransparenz (also 50% transparent)
loop:
btst #6,$bfe001
bne.s loop
rts
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
Hallo Ulf#,
nein, das heißt wohl gerade, dass nur 0% und 100% Transparenz zulässig sind, keine Zwischenstufen.
herbivore
(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
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
Ich lade die Icons ja zur Laufzeit, kann sie also nicht vorher bearbeiten. Oder habe ich etwas übersehen?
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.