<强>应用程序: 我写一个小游戏,将教用户读取音符。游戏玩法很简单。该应用程序里显示一个音符,我的小女儿(目标用户)应打在WinForm的GUI匹配的说明仿真键盘键。她有1分钟,获得尽可能多的好击中她能。的成功和失败进行计数。

<强>任务: 当她打的好/坏键盘的键,我想确认是否马上她是对还是错的不中断播放的。我的计划是示出了行或FAILED位图逐渐淡出和变〜2秒内完全透明的。淡出位图出来是为了鼓励用户专注于下一个音符,而不是理会先前的结果了一种很好的方式。

<强>的技术问题: 我怎么能显示与透明度Windows窗体上的位图?或者你有替代的非侵入性的,易于实施的让当前好/坏选择的用户知道想法?

有帮助吗?

解决方案

由于dylantblack说,WPF为您提供更好的工具来做到这一点。如果您选择使用Windows形式,请使用淡出出来的图像计时器的简单方法。设置你喜欢的任何频率的计时器。启动计时器,通过每次增加α和绘制白色或任何表单的颜色是随alpha通道值。

int alpha = 0;

...

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

其他提示

在的WinForms,你就需要使用定时器或东西动画化确定或故障的控制的透明度,使其淡出,或使用GDI +手动绘制它做类似的事情。

如果您正在使用.NET 3.5,无论如何,我建议你使用WPF,这是做那种事情容易多了。

作为一个例子,你可以看看斯科特Hanselman的婴儿粉碎应用程序,这是开放的源,并具有类似的淡入和淡出的事物的概念。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top