我在创建网格淡入效果时遇到了一些问题。
我想要点击后出现一个网格,这可能吗?
谢谢!
参加聚会有点晚了,因为我刚刚写的和 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 个动画,用于折叠和展开目标控件。您还可以设置很多属性,例如开始和目标值(从、到)和持续时间(这里需要 300 毫秒)。
在您的 .cs 文件中,您只需调用方法即可执行此操作
Animation_Collapse.Begin();
or Animation_Expand.Begin();
例如,只需将其放入您的 button_click 事件处理程序中。故事板位于 System.Windows.Media.Animation 命名空间中。
您可以使用 Storyboard 并为 Opacity 属性设置动画以产生淡入效果,以下线程涵盖了所需的代码:-
与保罗相同的答案,但我在一个项目中打开它: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>