主要是使用自带的notifyIcon这个控件即可,用两个icon图片循环切换,效果即闪烁提示。
主要代码如下:
public partial class Form1 : Form
{
int i = 0; //先设置一个全局变量 i ,用来控制图片索引,然后创建定时事件,双击定时控件就可以编辑
private Icon ico1 = Properties.Resources.ico1;
private Icon ico2 = Properties.Resources.ico2; //两个图标 切换显示 以达到消息闪动的效果
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
//如果i=0则让任务栏图标变为透明的图标并且退出
if (i < 1)
{
this.notifyIcon1.Icon = ico2;
i++;
return;
}
//如果i!=0,就让任务栏图标变为ico1,并将i置为0;
else
this.notifyIcon1.Icon = ico1;
i = 0;
}
}
注意:有一张图片最好是透明的ico,定时器Interval设置成500ms,看上去自然一点。
如果还要用notifyIcon做其它操作,可以参考这里
如果是 wpf, 直接给Style指定一个 trigger 动画即可:
<Style.Triggers>
<DataTrigger Binding="{Binding NeedReplaceDisk}" Value="false">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
<DataTrigger Binding="{Binding NeedReplaceDisk}" Value="true">
<DataTrigger.EnterActions>
<BeginStoryboard x:Name="DvdSwitchDiskNotifyStory">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" RepeatBehavior="Forever" Duration="0:0:3">
<ObjectAnimationUsingKeyFrames.KeyFrames>
<DiscreteObjectKeyFrame KeyTime="0:0:1" >
<DiscreteObjectKeyFrame.Value>
<Visibility>Visible</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
<DiscreteObjectKeyFrame KeyTime="0:0:2" >
<DiscreteObjectKeyFrame.Value>
<Visibility>Hidden</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames.KeyFrames>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="DvdSwitchDiskNotifyStory" />
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>