Я пытаюсь свернуть/развернуть сетку с помощью анимации, а во время ее анимации переместить все остальные компоненты соответственно.Развернуть/свернуть Grid
До сих пор я использовал
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Margin" Storyboard.TargetName="GridName">
<DiscreteObjectKeyFrame KeyTime="0:0:0.59" Value="0,0,0,0" />
(...more frames)
</ObjectAnimationUsingKeyFrames >
Но эффект далек от приемлемой (анимация не гладкая). Я блуждал, если у новых элементов управления есть такие возможности? Я также столкнулся с некоторыми расширениями/Collapsing ListViews, но они не работали с данными, содержащими данные.
Редактировать: Я пробовал анимировать свойство высот, но ничего не происходит (нет ошибки и нет видимого результата). Ниже мой код:
<Storyboard x:Name="MainImageSlideOut">
<DoubleAnimation Duration="0:0:1" To="0"
Storyboard.TargetProperty="Height"
Storyboard.TargetName="Grid"
EnableDependentAnimation="True"/>
</Storyboard>
<Storyboard x:Name="MainImageSlideIn">
<DoubleAnimation Duration="0:0:1" To="250"
Storyboard.TargetProperty="Height"
Storyboard.TargetName="Grid"
EnableDependentAnimation="True"/>
</Storyboard>
....
<Grid Background="#171717">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<Grid Grid.Row="1"
Height="250"
x:Name="Grid"
Background="#202020" />
<ScrollViewer Grid.Row="2">
...
</ScrollViewer>
</Grid>
Il выглядит отлично - но под сеткой я пытаюсь анимировать другую сетку, которая должна занимать место текущей сетки. К сожалению, это не так. Обе сетки находятся внутри основной сетки, у которой есть определения строк Auto для первого и * для второго. –
Одним из способов для этого было бы управлять высотой одной из Grids, тогда другая автоматически изменила бы его размер, чтобы соответствовать содержимому, а это означает, что только одна анимация вместо 2. Являются ли сетки в одной строке? – XAMlMAX
нет - это разные строки –