4

在我的 Metro 应用程序中,我有一个文本块,当 if 语句为真时,我会将其设置为 100% 不透明度然后返回 0% 不透明度。我该怎么做呢?

我做了很多环顾四周,但所有的动画教程都让我感到困惑。

4

1 回答 1

5

你可以在 C# 中做这样的事情来从 0 到 1 动画:

var sb = new Storyboard();
opacityAnimation = new DoubleAnimation
{
    From = 0.0,
    To = 1.0,
    Duration = TimeSpan.FromSeconds(1.5)
};
Storyboard.SetTarget(opacityAnimation, textBlock);
Storyboard.SetTargetProperty(opacityAnimation, "Opacity");
sb.Children.Add(opacityAnimation);
sb.Begin();

您也可以在 XAML 中定义它:

<Storyboard
    x:Name="fadeInStoryboard"
    Storyboard.TargetName="myTextBlock"
    Storyboard.TargetProperty="Opacity">
    <DoubleAnimation
        From="0"
        To="1.0"
        Duration="0:0:1.5" />
</Storyboard>

-- 然后在后面的代码中启动它:

fadeInStoryboard.Begin();

根据您的场景,使用视觉状态并将情节提要定义为视觉状态转换可能是理想的。

于 2012-06-04T07:09:07.267 回答