改变网格的不透明度创建“淡入”效果?

时间:2012-05-10 12:26:32

标签: windows-phone-7 animation opacity

我在创建网格效果淡入淡出时遇到了一些问题。

我希望点击后出现一个网格,这可能吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

派对太迟了,因为我写的和Hermit Dave几乎一样,但也许有助于更好地理解:

另一种方法是,在XAML视图中设置Storyboard项目,在我看来,它比纯C#代码更清晰。为此,您可以在<Grid.Resources>的故事板中声明,如下所示:

<!-- Animates the a control's height. -->
<Grid.Resources>
    <Storyboard x:Name="Animation_Collapse">
        <DoubleAnimation Storyboard.TargetName="Name_Of_Control"
                             Storyboard.TargetProperty="Height"
                             From="200" To="0" Duration="0:0:0.3" />
    </Storyboard>
    <Storyboard x:Name="Animation_Expand">
        <DoubleAnimation Storyboard.TargetName="Name_Of_Control"
                             Storyboard.TargetProperty="Height"
                             From="0" To="200" Duration="0:0:0.3" />
    </Storyboard>
</Grid.Resources>

在这里,您已声明了2个动画,用于折叠和展开目标控件。您还可以设置许多属性,例如开始和目标值(From,To)和Duration(这里需要300ms)。

在.cs文件中,只需调用方法

即可执行此操作
Animation_Collapse.Begin();
or Animation_Expand.Begin();

例如,将它放入button_click事件处理程序中。故事板在 System.Windows.Media.Animation namespace。

答案 1 :(得分:0)

您可以使用Storyboard并为Opacity属性设置动画以产生淡入效果,以下主题涵盖所需的代码: -

http://social.msdn.microsoft.com/Forums/is/windowsphone7series/thread/a8e05145-364d-412c-8fb5-faf65e80344e

答案 2 :(得分:0)

和保罗一样的回答,但我在一个项目中打开了:P花了我一段时间来了解故事板给你一个样本

<Storyboard x:Name="fadeText">
    <DoubleAnimation Storyboard.TargetName="tbData"
        Storyboard.TargetProperty="Opacity" From="1.0"
        To="0" Duration="0:0:1" AutoReverse="True" />

    <DoubleAnimation Storyboard.TargetName="btnReset"
        Storyboard.TargetProperty="Opacity" From="1.0"
        To="0" Duration="0:0:1" AutoReverse="True" />
</Storyboard>