我需要在.NETCF中创建一个透明背景的图像,我使用洋红色作为我希望透明的背景。我尝试这样做的方法是覆盖onPaint()。但我无法让背景透明化?这就是我所拥有的:
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
ImageAttributes imageAttributs = new ImageAttributes();
imageAttributs.SetColorKey(Color.FromArgb(255, 0, 255),
Color.FromArgb(255, 0, 255));
g.DrawImage(cross, crossRect, 200, 10, cross.Width, cross.Height,
GraphicsUnit.Pixel, imageAttributs);
base.OnPaint(e);
}
但是当我尝试包含ImageAttributes时,根本没有绘制我的图像?
答案 0 :(得分:9)
当然支持Colorkey透明度(自2.0以来 - 甚至可能更早)。这里的问题是,如果你是一个孩子,你会让父母“流血”。这似乎是你正在尝试的,但对我来说并不是很明显,所以我有一些后续问题需要澄清。
我现在的猜测是,ypou在你调用所有内容的方式上有一些错误,但是我们没有足够的代码来发现它。
以下是关于绘画和透明度的更多资源:
有更多的资源用于alpha-channel东西(在CF中远非简单),但由于看起来你正在尝试使用colorkey,这些应该足够了。
答案 1 :(得分:3)
紧凑的框架不支持透明度 - 你可以通过COM互操作来实现它的支持。克里斯·洛顿(Chris Lorton)在紧凑框架上有一个very good blog post。
答案 2 :(得分:1)
看起来OpenNETCF已经在这方面管理了包装器。我相信Chris Tacke可以对此发表更多评论。他似乎在这个网站上相当活跃,但看起来像是打败了他这个:)