我正在尝试创建一个效果,因此当用户将鼠标悬停在图片框上时,该按钮会淡化为hoverimage
,当它们离开时,它会淡化回原始图像。我正在使用图片框作为程序中的按钮。我这样做是因为所有按钮都是没有按钮纹理的图片,所以我没有看到使用按钮的重点。只是这样你可以想象它,这是原始图像:
图像淡入:
我仍然可以稍微改变这些图像,但这就是一般的想法。
我将如何创造这种褪色效果?我正在使用计时器和不透明度设置来描绘一些东西,但我不知道这些东西是如何帮助我解决这个问题的。
E:我有一些代码。当我悬停时,它会随着图像的变化而变化,但它不会褪色,而且看起来非常不稳定。
private void pictureBox3_MouseEnter(object sender, EventArgs e)
{
pictureBox3.Image = pictureBox37.Image;
}
private void pictureBox3_MouseLeave(object sender, EventArgs e)
{
pictureBox3.Image = pictureBox38.Image;
}
pictureBox37 and pictureBox38
是带有我需要的图像的不可见的参考图片框。
答案 0 :(得分:1)
我认为这种动画不支持任何WinForms,因此您必须手动执行此操作。如果您有多个这些按钮,我建议您使用此功能创建自己的UserControl。我可以给你一些指导:
position
属性将这两个图像混合到您的Graphics上。这是一个浮点数,其中0表示显示正常图像,1表示悬停图像。中间的任何值表示这两个图像的混合。我找到了一些很好的混合代码here。positionChange
属性,指示position
正在改变的方向。希望这会有所帮助......