【发布时间】:2011-01-21 08:03:46
【问题描述】:
不要被帖子的长度吓到,它应该非常简单。我只是想非常具体,因为当我之前解释问题时,很多人都误解了我。
我四处寻找解决方案,但没有找到我要找的东西。
我正在尝试在运行时动态添加的多个嵌套控件上设置透明度设置。我试过使用程序的整体透明颜色,但这似乎是在绘制控件之后绘制透明层。
我想要更多地控制哪些图层是透明的,所以我可以对面板、带有非矩形图像的 PictureBox 控件以及其他一些东西进行分层。我无法在 Paint() 事件中绘制图像(我已经在其他地方取得了巨大的成功),因为这些 PictureBox 具有单击、鼠标悬停、上下文菜单和其他相关内容。
所以有限制。
在下面的示例中,WinForm 应该模仿一本书,使用“标签”跳转到下一个“章节”,并在“书中”显示各种图形。下面的重要技术位。 Picture (slightly outdated)
FlowLayoutPanel FLP = 一个大的矩形面板。我希望它“完全透明”,因为它仅用于其 FlowLayout 功能,并且可以干净地移动/调整许多控件的大小。它包含以下控件。
1) Panel LeftTabs = 包含 LeftTabs 的面板。
2) 面板手册 = 包含大量子控件的面板。有背景图片(这里没有透明度问题,但子控件是个问题)。
3) Panel RightTabs = 包含 RightTabs 的面板。
***** 问题 1:透明标签面板 ***** 选项卡面板包含重叠的带有圆角的 PictureBox 控件 - 有点像归档文件夹选项卡。这些选项卡的缺失角显示下方控件的背景,而不是下一个进一步向下选项卡的图像。 在上图中,我仍然使用手工排列的 PictureBox,但现在我将选项卡移动到选项卡面板中,并且我希望 那些 的背景是透明的。
***** 问题 2:Book 面板中的子控件 *****
Book 面板控件包含 许多 个子面板(子层 1),这些 中的每一个都包含另一个 PictureBox 和数量不定的 NumericUpDown 控件(子层 2)。
NUD 很好,但 PictureBox (CL2) 有更多圆角。
面板 (CL1) 应该是完全透明的(仅将它们用于分组权力和逻辑),但这种透明度应该在 Book 面板级别停止。
希望这一切都说得通。 在放弃和解决这个问题之前,我过去尝试过无数次修复,但现在我决心正确地做到这一点。 我尝试更改控件的形状([control].Region),但该解决方案令人难以置信的混乱,并且使未来的更改(自定义皮肤)几乎不可能。
【问题讨论】:
-
嗨,我看不到你的例子。请提供/
-
你的意思是代码示例吗?我贴了一张图片,所以我只能假设这就是你想要的。我现在真的没有有任何代码,因为我什至不知道如何开始尝试我想做的事情。目前,相关代码除了动态地将控件添加到其他控件之外什么都不做。我能想到的唯一其他相关的事情是我用于一些 PictureBox 控件的 Paint() 事件处理程序,但这些基本上只是一长串 e.Graphics.DrawImage() 命令。你能澄清你的问题吗?
标签: c# winforms transparency