我目前在图像背景前有一些图像(4),问题是,图像形状与其他图像碰撞,透明度在它们之间不能很好地工作。
好的,我已经将这4张图片的背景颜色设置为“透明”,然后为每张图像设置父图像,但这就是我所看到的:
似乎只刷新他们的父(背景)一些帮助吗?
答案 0 :(得分:0)
我怀疑你是在添加图片盒或者类似的东西,但这会让你的工作效率非常低。
您可能需要考虑创建一个对象来处理图像绘制并将其添加到具有背景图像的基本控件中,如下所示:
public class YellowGuy
{
public Point Position {get; set;}
public Size Size {get; set;}
public Bitmap YellowGuyImage {get; set;}
public YellowGuy(Bitmap img, Point startPos, Size desiredSize)
{
YellowGuyImage = img;
Size = desiredSize;
Position = startPos;
}
public void Draw(Graphics g)
{
g.DrawImage(YellowGuyImage, new rectangle(Position, Size));
}
}
在你的主要表格中(也许,我不知道你的代码):
picturebox.Paint += new System.Windows.Forms.PaintEventHandler(this.picturebox_Paint);
List<YellowGuy> yellowGuys;
yellowGuys = new List<YellowGuy>();
yellowGuys.Add(new YellowGuy([some image],[some position],[some size])); //Do on a for, or how you wish, to add more guys.
//Control which draw images, here I used PictureBox to show you
private void picturebox_Paint(object sender, PaintEventArgs e)
{
foreach(var guy in yellowGuys)
{
guy.Draw(e.Graphics);
}
}
您可以重新定位黄人访问列表并更改位置,并在下次刷新时将其绘制到新位置。 您可能希望向YellowGuy对象添加ID或名称,以便区分它们。
BTW ......我在这里没有经过测试就编写了代码,但我认为重要的部分都在这里。