グリッド行の高さの変化をアニメートしたいのですが、動的な「星」の高さの値でそれを行うにはどうすればよいですか?
次のグリッドがあります。
<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);
}
これは今のところうまくいきますが、これをアニメーション化するにはどうすればよいですか? ストーリーボードには from/to 値が必要だと思いますが、動的サイズを使用しているため、ストーリーボードを使用できませんか?