【发布时间】:2016-02-29 08:39:14
【问题描述】:
我想在面板控件内的所有内容上显示一个矩形。到目前为止,我在面板控件中只有一个 WebBrowser。如果我开始运行程序而不将 WebBrowser 添加到面板控件,那么我将能够看到矩形。但是,如果我将 WebBrowser 添加到面板控件,那么它将与我的矩形绘图重叠。
如何在面板控件的内部创建一个矩形绘图,它将与所有内容重叠? (总是在最前面)
下面的代码将在面板控件内绘制一个蓝色矩形。但它不会显示,因为面板包含一个 WebBrowser。
using System;
using System.Drawing;
using System.Windows.Forms;
namespace Graphics_Overlay
{
public partial class GraphicsOverlayForm : Form
{
public GraphicsOverlayForm()
{
InitializeComponent();
Panel panel = new Panel();
panel.Dock = DockStyle.Fill;
panel.Paint += panel_Paint;
WebBrowser webBrowser = new WebBrowser();
webBrowser.Dock = DockStyle.Fill;
webBrowser.Url = new Uri("http://stackoverflow.com/");
Controls.Add(panel);
// If I comment out the line below then I will
// be able to see my blue rectangle.
panel.Controls.Add(webBrowser);
}
private void panel_Paint(object sender, PaintEventArgs e)
{
ShowLineJoin(e);
}
private void ShowLineJoin(PaintEventArgs e)
{
// Create a new pen.
Pen skyBluePen = new Pen(Brushes.Blue);
// Set the pen's width.
skyBluePen.Width = 1;
// Set the LineJoin property.
skyBluePen.LineJoin = System.Drawing.Drawing2D.LineJoin.Bevel;
// Draw a rectangle.
e.Graphics.DrawRectangle(skyBluePen,
new Rectangle(0, 0, 200, 200));
//Dispose of the pen.
skyBluePen.Dispose();
}
}
}
【问题讨论】:
标签: c# winforms graphics drawing panel