UWP 闪烁文本

UWP blinking text

这听起来很简单,但我找不到实现的方法。

我只想要 TextBlock 中的闪烁文本。有什么方法可以轻松做到吗?

我能想到的唯一方法是使用计时器并手动更改 TextBlock 前景。当然有一种简单的方法可以做到这一点。我就是想不通。

谢谢!

对于闪烁的文字,我认为计时器是最简单的方法。 (虽然我知道你有使用计时器并寻找替代品的想法,但层实际上应该达到目的) 可能像下面这样的东西可以帮助你。

Timer timer = new Timer();

    public void Blinker()
    {            
        timer.Interval = 500;

        timer.Start();

        timer.Tick += new EventHandler(timer_tick);
    }

    void timer_tick(object sender, EventArgs e)
    {
        if(label3.ForeColor = System.Drawing.Color.Green)
        {
            label3.ForeColor = System.Drawing.Color.White;
        }

        else
        {
            label3.ForeColor = System.Drawing.Color.Green;
        }            
    }

    public void StopBlinker()
    {
        timer.Stop();
    }

现在可以适当调用blinker方法让文字闪烁了。

从代码隐藏 (C#) 中,您可以使用如下代码来实现:

        Storyboard storyboard = new Storyboard();
        storyboard.Duration = new Duration(TimeSpan.FromSeconds(10.0));
        DoubleAnimation opacityAnimation = new DoubleAnimation()
        {
            From = 1.0,
            To = 0.0,
            BeginTime = TimeSpan.FromSeconds(5.0),
            Duration = new Duration(TimeSpan.FromSeconds(5.0))
        };

        Storyboard.SetTarget(opacityAnimation, txtBlink);
        Storyboard.SetTargetProperty(opacityAnimation, "Opacity");
        storyboard.Children.Add(opacityAnimation);
        storyboard.RepeatBehavior = RepeatBehavior.Forever;
        storyboard.AutoReverse = true;
        storyboard.Begin();

假设您有一个文本块:

        <TextBlock x:Name="txtBlink" FontSize="32">Some text</TextBlock>

您可以在 XAML 标记中声明一个 Storyboard 动画,使文本永远闪烁:

<TextBlock Text="I'm Blinking!">
    <TextBlock.Style>
        <Style TargetType="TextBlock">
            <Style.Resources>
                <Storyboard x:Key="flashAnimation" >
                    <DoubleAnimation Storyboard.TargetProperty="Opacity" From="1" To="0" AutoReverse="True" Duration="0:0:0.5" RepeatBehavior="Forever" />
                </Storyboard>
            </Style.Resources>
        </Style>
    </TextBlock.Style>
</TextBlock>

这是使用我在 WPF 和 WinRT 中的经验 XAML,但我很确定 UWP 使用相同的 Storyboard 动画。

这是 Microsoft 在 MSDN 上的方便参考:Animations Overview

希望对您有所帮助!