winforms 如何在鼠标悬停事件中将图片框图像淡入淡出到另一个图片框图像?

mrzz3bfm  于 2022-12-23  发布在  其他
关注(0)|答案(1)|浏览(149)

我如何使图片框在鼠标悬停时从一个图像变为另一个图像,以产生淡入效果?
我还想创建一个动画图片框作为一个控件。一个易于使用的工具箱项
我尝试使用.Net 4.5在C#语言中创建这个。
包含我希望图片框执行的操作的按钮示例。Animated Button Example-MSDN

frebpwbc

frebpwbc1#

如果你想拥有动画或类似的东西,最好使用WPF,因为它提供了动画类和平滑的动画对象。
无论如何,在Winforms中你应该使用一个计时器来实现这个方法。这是用于淡出的,你可以用它来实现淡入功能。在鼠标悬停在你的图片框上时使用这个。这个链接详细解释了
How to fade in and fade out (Fading transition ) image on panel(backgroud image)?

int opacity = 0;

private void tmrFadeOut_Tick(object sender, EventArgs e)
{
    if (opacity < 255)
    {
        Image img = myImage.Image;
        using (Graphics g = Graphics.FromImage(img))
        {
            Pen pen = new Pen(Color.FromArgb(opacity, 255, 255, 255), img.Width);
            g.DrawLine(pen, -1, -1, img.Width, img.Height);
            g.Save();
        }
        myImage.Image = img;
        opacity++;
    }
    else
    {
        timer1.Stop();
    }
}

相关问题