C# 如何在winform面板的边框上添加图像?
我试图添加一个重叠WinForm边框的图像 但它只显示面板边框内的图像 我试过增加保证金,但根本不起作用C# 如何在winform面板的边框上添加图像?,c#,.net,winforms,C#,.net,Winforms,我试图添加一个重叠WinForm边框的图像 但它只显示面板边框内的图像 我试过增加保证金,但根本不起作用 cross_Img.Location = new System.Drawing.Point(Panel1.Size.Width - 15, -5); cross_Img.Margin = new Padding(0, -15, -15, 0); Panel1.Controls.Add(cross_Img); 试试这个 指定所需位置,而不是将图像添加到面板。有几种方法可以做到这一点 这
cross_Img.Location = new System.Drawing.Point(Panel1.Size.Width - 15, -5);
cross_Img.Margin = new Padding(0, -15, -15, 0);
Panel1.Controls.Add(cross_Img);
试试这个
指定所需位置,而不是将图像添加到面板。有几种方法可以做到这一点 这里有一个简单的例子,可能对你来说不够好,也可能不够好 让我们假设装饰
图像img
和边框宽度intbw
int iw2 = img.Width / 2;
int ih2 = img.Height / 2;
首先设置一个填充:
adornedPanel1.Padding = new Padding(bw, ih2 + bw, iw2 + bw, bw );
这不会显示,但有助于将任何控件固定在边界内
接下来,我们对Paint/OnPaint
代码进行编码:
Rectangle cr = adornedPanel1.ClientRectangle;
Rectangle r = new Rectangle(0, ih2, cr.Width - iw2, cr.Height - ih2 );
using (Pen pen = new Pen(Color.MediumSlateBlue, bw)
{ Alignment = System.Drawing.Drawing2D.PenAlignment.Inset})
e.Graphics.DrawRectangle(pen, r);
e.Graphics.DrawImage(img, cr.Right - img.Width, 0);
要显示填充
如何用于停靠和/或锚定控件,示例中有一个标签
,其背景色为实心停靠在面板
内的左侧。右侧的屏幕截图显示了带有白色背景的面板
,因此您可以看到整个布局
注意从中心到插入的设置
如果创建一个面板子类,我建议它跟踪新的自定义客户区矩形
其他解决办法可以是:
- 使用区域创建成型嵌板
- 覆盖另一个面板/标签/图片盒
很难想象,很可能你没有正确解释或解决它(因此你在这里)。你能添加屏幕截图吗?你想让图像出现吗?你还没有用这张图像解释任何事情。试着详细解释你想做什么,目的是什么。也许有人可以告诉你做一个更好的选择。我不知道如何进一步解释这一点。我已经创建了一个面板,并简单地添加了一个交叉图像点击某些事件。现在我希望这个交叉图像出现在面板的边框上,以获得更专业的外观。但图像并未出现在面板边界之外。可以把它放在面板的边缘吗?如果是,如何?@Sinatr图像应显示在窗体内面板的边框上
Rectangle cr = adornedPanel1.ClientRectangle;
Rectangle r = new Rectangle(0, ih2, cr.Width - iw2, cr.Height - ih2 );
using (Pen pen = new Pen(Color.MediumSlateBlue, bw)
{ Alignment = System.Drawing.Drawing2D.PenAlignment.Inset})
e.Graphics.DrawRectangle(pen, r);
e.Graphics.DrawImage(img, cr.Right - img.Width, 0);