我目前正在开发一款用于游戏制作的TileEditor软件。 几乎一切都很顺利。这是问题所在。
我努力实现这一目标而没有任何成功。 让我们从WinForm的屏幕截图开始。
您可能已经确定了应用程序的工作方式。
所以,除了瓷砖选择面板(右侧面板)之外,我想在整个表格上画一个半透明的黑色矩形。我已经有了找到矩形的正确点和位置的功能,以便它不会出现在右侧面板上。
虽然当我尝试绘制它时,它会在控件下方绘制。有没有办法在这样的表格中的所有内容上绘制矩形?
(Photoshoped) 非常感谢你的时间,真的很感激。 抱歉英语不好,这不是我的第一语言。
答案 0 :(得分:3)
最简单的方法可能是采用独立的,无边框,半透明的形式,并在您的设计形式上浮动烟熏玻璃效果。禁用它以便鼠标点击等依次落到底层表单。
(你的英语很好)。
答案 1 :(得分:1)
您可以在下面创建控件,创建底层控件的图像,然后在其上绘制一个半透明的黑色矩形。您可以将此格式放在要变暗的控件上以及要保持亮起的控件下方。然后,您可以根据需要设置它的可见性。
class OverlayShadow : Control
{
protected override void OnPaint(PaintEventArgs e)
{
if (Parent != null) {
Bitmap behind = new Bitmap(Parent.Width, Parent.Height);
foreach (Control c in Parent.Controls)
if (c.Bounds.IntersectsWith(this.Bounds) & c != this)
c.DrawToBitmap(behind, c.Bounds);
e.Graphics.DrawImage(behind, -Left, -Top);
behind.Dispose();
}
e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(128, 0, 0, 0)), Bounds);
}
}