我做了一些研究,但似乎无法找到我想要的东西。
我想要做的是在Windows窗体中创建一个“自定义”按钮。这基本上只是将默认的“灰色”背景更改为自定义图像。当鼠标悬停在单击按钮上时,也会使用自定义图像。
这不仅仅是改变背景图像的问题,因为我想要使用的图像具有带有透明背景的圆形边缘,我希望自定义图像用于悬停/点击。我希望关于按钮的所有其他内容的行为方式与普通按钮相同。
这可能吗?
答案 0 :(得分:3)
它被称为所有者绘制的按钮
参考:
Mick Dohertys' .net Tips and Tricks - Tips / Button
GlowButton - A Glowing Button Control
A shiny orb button in GDI+
答案 1 :(得分:3)
我找到的解决方案是将按钮的 FlatStyle 设置为 Flat 并将所有边框设置为0.然后按钮的焦点出现问题(它显示了一个小边框)。为了解决这个问题,我遵循了本教程:
http://dotnetstep.blogspot.com/2009/06/remove-focus-rectangle-from-button.html
有了这个,我所要做的就是向按钮添加事件,以便在对其执行特定操作时更改图像:
private void button1_MouseLeave(object sender, EventArgs e)
{
this.button1.Image = Properties.Resources._default;
}
private void button1_MouseEnter(object sender, EventArgs e)
{
this.button1.Image = Properties.Resources._hover;
}
private void button1_MouseDown(object sender, MouseEventArgs e)
{
this.button1.Image = Properties.Resources._clicked;
}
private void button1_MouseUp(object sender, MouseEventArgs e)
{
this.button1.Image = Properties.Resources._default;
}
希望这会帮助别人!