这可能听起来像一个奇怪的问题,但我有C#Winform,我将FormBorderStyle设置为无。到目前为止,一切都很好,但我想知道是否有一种方法可以在我的表单上添加像1px的边框?我知道我可以通过创建自己的形象来做到这一点,但我想知道是否有更自然的做法。 感谢无边界Winform的1px边框
回答
我认为使用图像,或创建不必要的控件,可以很容易地使用GDI +可浪费资源来绘制。
我认为最简单的办法是压倒一切的表单的OnPaint
方法和绘制边框自己:
protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.DrawRectangle(Pens.Black, this.Bounds);
}
当然,你也可以用自己喜欢的颜色和宽度使用自己Pen
。
有没有更多的自然或非天然的方式来做到这一点。这取决于你想要什么。
如果您在表单上放置背景图像,则必须考虑一个事实,即为了能够支持可调整大小,必须具有可调整大小的背景图像。
如果单纯上有Pen
或Brush
背景画,还可以支持可调整大小的形式,但你必须,如果你想要做一些很酷的东西更多的工作,而不是用图片更容易。
您可以在窗体中嵌入一些控件,并用颜色表示边框的感觉。像控制一样,您可以使用Panel
,正如评论中所建议的那样,可以使用GroupBox
来创建较薄的broder或其他内容。
只需在表单中添加Panel
(并将其设置为边框),如何?
感谢您的建议,我决定创建4个1px的标签,并在每边的边上折腾。那样: 1.他们正在考虑自己的业务,而不是占用整个中间,如果你使用一个groupbox或面板。 2.您可以选择更改边框颜色。
在窗体中使用填充1; 1; 1; 1并为窗体设置背景颜色,并将窗格放置到窗体中。将白色或其他正常背景色设置为面板。并在父控制器中设置码头。表单的背景颜色将用作边框。
这是最简单的最简单的解决方案。 –
我创建了这个方法,所以你可以很容易的设置边框的位置,颜色和厚度。
private void customBackgroundPainter(PaintEventArgs e, int linethickness = 2, Color linecolor = new Color(), int offsetborder = 6)
{
Rectangle rect = new Rectangle(offsetborder, offsetborder, this.ClientSize.Width - (offsetborder * 2), this.ClientSize.Height - (offsetborder * 2));
Pen pen = new Pen(new Color());
pen.Width = linethickness;
if (linecolor != new Color())
{
pen.Color = linecolor;
}
else
{
pen.Color = Color.Black;
}
e.Graphics.DrawRectangle(pen, rect);
}
你可以在OnPaintBackground
使用它喜欢这样:
protected override void OnPaintBackground(PaintEventArgs e)
{
base.OnPaintBackground(e);
customBackgroundPainter(
e,
linethickness: 3,
linecolor: Color.DarkOrange,
offsetborder: 5
);
}
- 1. 1px的边界移动
- 2. 在无边界WinForm上投下阴影
- 3. 多边形的边界框
- 4. 列表框1px边框 - 默认边框 - Bd样式
- 5. 带边框的图像边框1px:0;没有js
- 6. CSS边框宽度:1px不会给我同样薄的边框
- 7. 具有圆角1px边框的边框间距
- 8. OpenCV边界框
- 9. 无边界窗体边缘
- 10. 带有1px边框的透明背景?
- 11. FireFox中真正的1px表格边框?
- 12. 删除UISearchBar下的1px边框
- 13. WebKit中的神秘1px边框
- 14. 具有1px边框的CSS网格
- 15. 表格中的Strage 1px白色边框
- 16. 无边界TabControl
- 17. 无边界的UIBarButtonItem
- 18. 删除数字识别的边界框内的边界框
- 19. igraph去边界框的边缘
- 20. 边界评论框
- 21. Oriented边界框 - Android
- 22. 嵌套表格:1px边框与css
- 23. Android DialogFragment如何删除1px边框
- 24. 1px在IE11 /边缘虚线边框渲染
- 25. 无边界形式的C#透明边框
- 26. 无边界打印
- 27. 边框底部覆盖边界左侧?
- 28. 三维边界盒边框xna
- 29. CSS怀疑 - 边界左边框底部
- 30. hr元素vs 1px高div vs 1px边框
你可以把一个'Panel'形式和Dock.Fill它,然后给一个边界(它有一个1px的黑色边境)。 –