我想在winforms中的PictureBox中的一个gif上放置一个标签。问题是这个标签的背景是白色的。我想让它是透明的。
我的代码如下:
this.pictureBox = new PictureBox();
this.pictureBox.Image = Image.FromFile("my_background.gif");
this.pictureBox.Dock = DockStyle.Fill;
this.pictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
this.label = new Label();
this.label.Text = "Hallo";
this.label.BackColor = Color.Transparent;
this.label.Location = new System.Drawing.Point(100, 100);
this.Controls.Add(this.label);
this.Controls.Add(this.pictureBox);
我的问题是,标签有一个白色的背景,即使背景设置为透明。其他有类似问题的解决方案是设置标签的父到图片框,如下所示:
this.label.parent = this.pictureBox;
但这并没有为我解决问题,还有其他方法可以实现吗?
谢谢你的回答。
1条答案
按热度按时间4dc9hkyq1#
谢谢你的提示。
当只把一个视图控件放在gif前面时,它工作得很好。当添加到许多控件时,它变得非常有缺陷,只有gif的一些矩形部分会更新。
我通过将gif拆分为单个图像并在窗体的OnPaint事件中显示它们来解决这个问题
"绘制方法"如下所示。
我的所有控件都直接添加到视图中,不再添加到图像框中,因为图像框被完全删除了。
也许这也能帮助别人