我的文本块的Flash动画

时间:2014-02-13 23:00:43

标签: c# wpf xaml

我已经设置了一个文本块来设置alrm时钟熄灭时添加的字符串“ALARM”。该代码适用于此过程。当闹钟响起时,我试图让这个字符串“ALARM”(或文本块本身)闪烁。

我能够计算出代码,使字符串“ALARM”淡出淡出使用鼠标事件,但无法弄清楚如何在没有鼠标事件的情况下实现它。我尝试了textBlock_Loaded事件,但这不起作用。我希望淡入淡出在循环中永远持续进行,以创建闪烁效果。

如果有适合我需要的活动,请提供建议。在可用事件列表中逐个尝试但没有成功。我的鼠标事件代码如下。感谢任何建议。谢谢。

private void textBlock3_MouseLeave(object sender, MouseEventArgs e)
{
    TextBlock textblk = (TextBlock)sender;
    DoubleAnimation animation = new DoubleAnimation(0, TimeSpan.FromSeconds(2));
    textblk.BeginAnimation(TextBlock.OpacityProperty, animation);
}

private void textBlock3_MouseEnter(object sender, MouseEventArgs e)
{
    TextBlock textblk = (TextBlock)sender;
    DoubleAnimation animation = new DoubleAnimation(1, TimeSpan.FromSeconds(2));
    textblk.BeginAnimation(TextBlock.OpacityProperty, animation);
}  

1 个答案:

答案 0 :(得分:1)

您需要的只是EventTrigger“加载”事件。将RepeatBehavior设置为“永远”,以便故事板不断重复,并AutoReverse为“True”:

<TextBlock x:Name="textBlock3" Text="hello world">
    <TextBlock.Triggers>
        <EventTrigger RoutedEvent="Loaded">
            <BeginStoryboard>
                <Storyboard RepeatBehavior="Forever" AutoReverse="True">
                    <DoubleAnimation Storyboard.TargetProperty="Opacity"
                                     Duration="0:0:1"
                                     To="0"
                                     />
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </TextBlock.Triggers>
</TextBlock>