這可能聽起來像一個奇怪的問題,但我有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. CSS網格 - 1px邊框。我無法獲得邊框效果
- 3. CSS 1px邊界筆畫突破邊界半徑
- 4. 在無邊界WinForm上投下陰影
- 5. 多邊形的邊界框
- 6. 乾淨的方式,以邊框彼此相鄰的邊框 - 導致1px寬的邊界
- 7. 列表框1px邊框 - 默認邊框 - Bd樣式
- 8. CSS邊框寬度:1px不會給我同樣薄的邊框
- 9. 帶邊框的圖像邊框1px:0;沒有js
- 10. 具有圓角1px邊框的邊框間距
- 11. OpenCV邊界框
- 12. XML3D邊界框
- 13. 無邊界窗體邊緣
- 14. FireFox中真正的1px表格邊框?
- 15. 表格中的Strage 1px白色邊框
- 16. 刪除UISearchBar下的1px邊框
- 17. .modal頭顯示1px的白色邊框
- 18. WebKit中的神祕1px邊框
- 19. 帶有1px邊框的透明背景?
- 20. 具有1px邊框的CSS網格
- 21. 無邊界TabControl
- 22. 刪除數字識別的邊界框內的邊界框
- 23. 無邊界的UIBarButtonItem
- 24. igraph去邊界框的邊緣
- 25. 邊界評論框
- 26. Oriented邊界框 - Android
- 27. 嵌套表格:1px邊框與css
- 28. Android DialogFragment如何刪除1px邊框
- 29. 1px在IE11 /邊緣虛線邊框渲染
- 30. 無邊界形式的C#透明邊框
你可以把一個'Panel'形式和Dock.Fill它,然後給一個邊界(它有一個1px的黑色邊境)。 –