我正在嘗試爲修復其一些錯誤的遊戲製作啓動程序。 現在我只是在界面上工作,我想製作自定義按鈕,而不僅僅是那些通用的方塊,但我無法弄清楚如何。如何在Visual Studio中創建自定義按鈕?
下面是一些示例圖像。
我只是把這些按鈕快速在一起,但是這就是我想要的。 我希望按鈕突出顯示,當我將鼠標懸停在上面時,它不在默認的方形按鈕內。
我正在嘗試爲修復其一些錯誤的遊戲製作啓動程序。 現在我只是在界面上工作,我想製作自定義按鈕,而不僅僅是那些通用的方塊,但我無法弄清楚如何。如何在Visual Studio中創建自定義按鈕?
下面是一些示例圖像。
我只是把這些按鈕快速在一起,但是這就是我想要的。 我希望按鈕突出顯示,當我將鼠標懸停在上面時,它不在默認的方形按鈕內。
我使用的圖片框,然後在我的按鈕圖片具有透明背景添加。然後添加一個點擊事件,鼠標進入和鼠標離開事件。
這可以通過自定義繪製按鈕來完成。來自MSDN的This demo顯示瞭如何覆蓋OnPaint
並通過響應OnMouseDown
和OnMouseUp
來交換位圖。爲了讓圖像在懸停時改變,只需在OnEnter
和OnLeave
期間交換位圖。
這裏有一個刪節例如,從鏈接頁面:
public class PictureButton : Control
{
Image staticImage, hoverImage;
bool pressed = false;
// staticImage is the primary default button image
public Image staticImage
{
get {
return this.staticImage;
}
set {
this.staticImage = value;
}
}
// hoverImage is what appears when the mouse enters
public Image hoverImage
{
get {
return this.hoverImage;
}
set {
this.hoverImage = value;
}
}
protected override void OnEnter(EventArgs e)
{
this.pressed = true;
this.Invalidate();
base.OnEnter(e);
}
protected override void OnLeave(EventArgs e)
{
this.pressed = false;
this.Invalidate();
base.OnLeave(e);
}
protected override void OnPaint(PaintEventArgs e)
{
if (this.pressed && this.hoverImage != null)
e.Graphics.DrawImage(this.hoverImage, 0, 0);
else
e.Graphics.DrawImage(this.staticImage, 0, 0);
base.OnPaint(e);
}
}
你使用哪種技術爲你的發射器? WPF,WinForms,還有別的? – ChrisF
WinForms,對不起,我沒有提到。 – ShadyOrb09