Winforms 设置标签的真实透明度
我正在用c++/cli编写winform应用程序。Winforms 设置标签的真实透明度,winforms,visual-c++,label,transparency,Winforms,Visual C++,Label,Transparency,我正在用c++/cli编写winform应用程序。 在这个应用程序中,我在图片盒上有一个图形,为了指出一些有趣的数据,我使用了一个标记作为标签编码。为了实现透明度,我制定了: label1->Parent = picbureBox1; 然后将背景色设置为透明,但我注意到它是真正的透明,因为它对图片框上绘制的线条不透明,只对背景透明。情况就是这样: / 1 | / 2
在这个应用程序中,我在
图片盒上有一个图形,为了指出一些有趣的数据,我使用了一个标记作为标签编码。为了实现透明度,我制定了:
label1->Parent = picbureBox1;
然后将背景色设置为透明
,但我注意到它是真正的透明,因为它对图片框
上绘制的线条不透明,只对背景透明。情况就是这样:
/ 1 | / 2
/ --------- |
/ |label1 | | |label1|
/ --------- |
/ | /
即使是透明的,当标签从1移动到2时,我的标签也会覆盖该行。
我想实现的是:
/ 1 | / 2
/ --------- | /
/ |label1 | | |label1|
/ --------- | /
/ | /
这是可能的,还是应该在标记覆盖线条时重新绘制线条?透明度不是您所认为的那样。当你写label1->Parent=pictureBox1代码>它被翻译成label1->backColor=pictureBox1->backColor
。label控件不知道picturebox上的图形。因此,是的,您必须在标签中绘制剩余的线。使用CreateGraphics()绘制时会发生这种情况。总是错误的,用绘制事件处理程序绘制。好的,看起来很清楚。我只是想了想,我希望有一种方法可以避免编写更多的代码p@HansPassant:这次我没有使用CreateGraphics,在这种情况下,它不会帮助我使用Paint事件处理程序进行绘图!你的问题记录得太差,无法猜测问题的答案。下一个盲猜测不是将true传递给Invalidate()调用。不要让我们猜测,邮政编码代替ascii艺术。