我在View = LargeIcons
中有一个ListView。我添加了一个图标,我用PNG(黑色带白色背景,32位ARGB)和两个用System.Drawing.Graphics
完成的图标(白色背景,Pixelformat 32bppArgb)。
当我选择列表中的图标时,PNG被屏蔽/突出显示正常,但是在屏蔽/突出显示时,编程绘制的自定义图标具有可怕的伪像(截屏中的最后两个)。
看看:
如何将我的图标渲染为外部图形?
代码:
Bitmap bmp = new Bitmap(THUMB_WIDTH, THUMB_HEIGHT, formatThumbs);
using(Graphics g = Graphics.FromImage(bmp))
{
g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
g.Clear(Color.White);
g.DrawEllipse(penThumbLine, 1, 1, THUMB_WIDTH - 2, THUMB_HEIGHT - 2);
}
return bmp;
当我将Clear
颜色更改为Color.Transparent
时,如果选择了条目/图标,则没有突出显示。 ImageList
TransparentColor
为Color.Transparent
。