我已经做了一些研究,但似乎无法找到我所期待的。自定义按钮
我想要做的是使一个窗口形式的“自定义”按钮。这基本上只是将默认的“灰色”背景改为自定义图像的问题。当鼠标悬停并点击按钮时,也会使用自定义图片。
这不仅仅是一个更改背景图片,因为我想使用已经具有透明背景圆滑的边缘,我想自定义图像徘徊在图像的事/点击。我希望关于按钮的所有其他内容与普通按钮的行为方式相同。
这可能吗?
我已经做了一些研究,但似乎无法找到我所期待的。自定义按钮
我想要做的是使一个窗口形式的“自定义”按钮。这基本上只是将默认的“灰色”背景改为自定义图像的问题。当鼠标悬停并点击按钮时,也会使用自定义图片。
这不仅仅是一个更改背景图片,因为我想使用已经具有透明背景圆滑的边缘,我想自定义图像徘徊在图像的事/点击。我希望关于按钮的所有其他内容与普通按钮的行为方式相同。
这可能吗?
我找到的解决方案是按钮的的FlatStyle设置为平和设置所有的边界为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;
}
希望这会帮助别人!
这就是所谓的所有者绘制按钮
参考:
Mick Dohertys' .net Tips and Tricks - Tips/Button
GlowButton - A Glowing Button Control
A shiny orb button in GDI+
感谢您的回复。嗯,看起来这将是一项长期任务!我会看看它。 – Jpin 2012-02-17 00:16:05
听起来更像你想使用WPF。但是,您是否可以选择迁移到WPF,还是陷入Windows窗体? – 2012-02-16 23:43:38
我几乎只限于Windows窗体。 – Jpin 2012-02-16 23:47:07
从这里到那里的最快路线很可能是授权你需要的控制,而不是从头开始写。 – Bevan 2012-02-17 00:21:15