如何在两个图标之间切换以使其闪烁?

时间:2014-07-22 19:06:04

标签: c# winforms

在form1构造函数的顶部,我做了:

filePaths = Directory.GetFiles(@"C:\Users\bout0_000\Downloads\", "imagenew*.ico");
timer3.Start();

然后:

private void timer3_Tick(object sender, EventArgs e)
{

    for (int i = 0; i < filePaths.Length; i++)
    {
        if (!filePaths[i].Equals(currentIcon))
        {
            this.Icon = new Icon(filePaths[i]);
            currentIcon = filePaths[i];
            break;
        }
    }
}

在form1的设计者中,我添加了此图标的图标,当我运行程序时,图标会快速切换并闪烁。

但是在任务栏中,图标没有快速平滑地切换它似乎在几秒钟之后就会闪烁,然后几秒钟就像悬挂在毫秒或者某些地方一样它没有像form1 Icon那样快速平滑地切换。

1 个答案:

答案 0 :(得分:0)

嗯,System.Timers.Timer在一个独立的线程上运行,所以你的主线程以及它所做的任何工作都不会阻止+Elapsed事件。

也许这是一个经常,一遍又一遍,从驱动器中读取文件以切换图标图形的问题?我的建议是将您的目标图像加载到项目的资源文件中,并从 而不是物理驱动器中绘制图像的交换。

如果这些文件是动态的,可以在程序初始化时将它们缓存。

Is the image loaded from url in winforms picturebox stored in cache?