我想在WinForms應用程序中創建一個簡單的3D線,以改進我的表單佈局的可視佈局。 這行非常像關於Windows對話框中的行(可以在Windows資源管理器 - >幫助 - >關於Windows中打開)。如何在WinForms應用程序中創建一行?
一個例子進行檢查here。最後一行(3D)是我想要的,而不是第一行。
如何在C#或Visual Basic(.NET)做些什麼呢?
感謝
我想在WinForms應用程序中創建一個簡單的3D線,以改進我的表單佈局的可視佈局。 這行非常像關於Windows對話框中的行(可以在Windows資源管理器 - >幫助 - >關於Windows中打開)。如何在WinForms應用程序中創建一行?
一個例子進行檢查here。最後一行(3D)是我想要的,而不是第一行。
如何在C#或Visual Basic(.NET)做些什麼呢?
感謝
如果使用SysInternals的ZoomIt實用程序,可以看到這只是兩行。白色之上的深灰色。使用Graphics.DrawLine()繪製線條非常簡單,您只需確保選擇與該窗體的BackColor配合良好的深色。如果用戶選擇另一個主題,那並不總是灰色的。這使GroupBox技巧下降。
此示例代碼是維修:
protected override void OnPaint(PaintEventArgs e) {
Color back = this.BackColor;
Color dark = Color.FromArgb(back.R >> 1, back.G >> 1, back.B >> 1);
int y = button1.Bottom + 20;
using (var pen = new Pen(dark)) {
e.Graphics.DrawLine(pen, 30, y, this.ClientSize.Width - 30, y);
}
e.Graphics.DrawLine(Pens.White, 30, y+1, this.ClientSize.Width - 30, y+1);
}
注意使用此代碼按鈕1,有以確保在行權高度繪製,即使形式重新調整。選擇您自己的控件作爲該行的參考。
一種方法是創建一個不帶標籤和高度0一組框(或者是1,也不太記得了) - 我知道我以前用過的那招,即使感覺有點哈克:-)
我也已經使用了GroupBox hack和它有基於操作系統邊境主題造型本身的利益。
也有VB Power Packs控件集合在一個Line類。那裏還有其他一些我們也用過的好東西。
編輯:這是我的Seperator類,用於使用上述方法繪製水平線。
public class Separator : GroupBox
{
// Methods
protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified)
{
base.SetBoundsCore(x, y, width, 3, specified);
}
// Properties
[DefaultValue("")]
public override string Text
{
get
{
return string.Empty;
}
set
{
}
}
}
您可以通過添加標籤並設置其文字下劃線得到一個行分隔符效應「_」
嗨@Tor,我試過一次,但如果用戶在Windows中使用皮膚,這可以使線看起來很奇怪! 我正在尋找和替代這種技術。 – RHaguiuda 2010-06-21 18:26:04