0

我想在 PictureBoxes 上绘制标签,但应该是透明背景。这是我的代码:`

                           Labels[i].Location = new Point(0, 0);
                            Labels[i].Size = new Size(13, 13);
                            Labels[i].BackColor = Color.Transparent;
                            Labels[i].ForeColor = Color.Blue;


  Invoke(new MethodInvoker(delegate { Panels.Controls.Add(Pictures[i]); }));
                                    Invoke(new MethodInvoker(delegate { Panels.Controls.Add(Labels[i]); }));

我的图片画得很好,标签也是......但是我在图片下面找到了标签(当我将图片拖出他的位置时,我可以看到每个标签)所以我想知道,我怎样才能把它们放在前面与透明背景。谢谢你`

4

4 回答 4

0

尝试调用Panels.Controls[Labels[i].Name].BringToFront();您的代表。这应该将每个标签放在图片前面,因为此时它们已经添加到面板中。

于 2013-10-07T14:01:38.367 回答
0

我认为你应该使用像z-index这样的东西

于 2013-10-07T13:39:18.717 回答
0

透明度仅与容器有关。为此,您必须将 Label 添加到PictureBox。更改Panels为您在该Controls.Add()行中使用的 PictureBox 的名称。

于 2013-10-07T15:36:49.477 回答
0

我想你已经用谷歌搜索过了,但这里有一个关于 winforms 透明度的很好的链接

我曾经编写过许多使用带有透明标签的非常丑陋的皮肤的 winforms 应用程序。我记得当使用 jpg 作为背景图片以及在绘制标签后加载图片时存在一些故障。

无论如何,我建议重写 onPaint 和 onDraw 方法,如您在链接中看到的那样。

于 2013-10-07T14:40:30.390 回答