我想为网格行高度变化设置动画,但是如何使用动态“星形”高度值来做到这一点?
我有以下网格:
<Grid x:Name="baseGrid">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="3*"/>
</Grid.RowDefinitions>
<Grid x:Name="grid0" Grid.Row="0" Tap="grid0_Tap">
// Content
</Grid>
<Grid x:Name="grid1" Grid.Row="1" Tap="grid1_Tap">
// Content
</Grid>
<Grid x:Name="grid2" Grid.Row="2">
// Content
</Grid>
</Grid>
在后面的代码中,我有逻辑,如果用户单击 grid0,grid2 会被隐藏。同样,如果用户单击 grid1,grid2 会恢复其大小。
private void grid0_Tap(object sender, RoutedEventArgs e)
{
this.LayoutRoot.RowDefinitions[2].Height = new GridLength(0);
}
private void grid1_Tap(object sender, RoutedEventArgs e)
{
this.LayoutRoot.RowDefinitions[2].Height = new GridLength(3, GridUnitType.Star);
}
现在效果很好,但是如何制作动画呢?我认为 Storyboard 需要它的 from/to 值,因为我使用动态尺寸我不能使用 Storyboard?