如何动画Visibility.Collapsed +更新StackPanel

时间:2017-05-25 22:23:58

标签: c# wpf xaml

我认为我的标题有点令人困惑,所以让我详细解释一下我的问题。

我有一个StackPanel,里面有多个网格。它基本上看起来像下面带有“Header Grid”和“Content Grid”的表。 StackPanel本身位于ScrollViewer中。 每当用户点击“标题网格”时,相应的“内容网格”应该折叠,反之亦然。

这是我桌子的简短版本:

        <ScrollViewer Margin="0,0,0,10">
        <StackPanel>
            <Grid x:Name="Header_Grid1" Height="24" Background="#BF101820" VerticalAlignment="Top" Margin="34,0,0,0" Cursor="Hand" >
                <Label Content="Click me to show/hide Content_Grid1"  Padding="5,0" VerticalContentAlignment="Center" Margin="5,0,0,0" Grid.ColumnSpan="2" Width="982"/>
            </Grid>
            <Grid x:Name="Content_Grid1" Height="100" Width="967" HorizontalAlignment="Right" Margin="0,5,0,0" RenderTransformOrigin="0.5,0.5">
                <Label Content="some content"  Foreground="#FF918F82" Padding="5,0" VerticalContentAlignment="Center" Margin="0,0,719,75"/>
                <Label Content="some content"  Foreground="#FF918F82" Padding="5,0" VerticalContentAlignment="Center" Margin="0,25,719,50"/>
            </Grid>
            <Grid x:Name="Header_Grid2" Height="24" Background="#BF101820" Width="1001" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,10,0,0">
                <Label Content="Click me to show/hide Content_Grid2"  Padding="5,0" VerticalContentAlignment="Center" Margin="5,0,0,0" Grid.ColumnSpan="2" Width="982"/>
            </Grid>
            <Grid x:Name="Content_Grid2" Height="100" Width="967" HorizontalAlignment="Right" Margin="0,5,0,0" RenderTransformOrigin="0.5,0.5">
                <Label Content="some content"  Foreground="#FF918F82" Padding="5,0" VerticalContentAlignment="Center" Margin="0,0,719,75"/>
                <Label Content="some content"  Foreground="#FF918F82" Padding="5,0" VerticalContentAlignment="Center" Margin="0,25,719,50"/>
            </Grid>
        </StackPanel>
    </ScrollViewer >

让我们说用户点击“Header_Grid1”,“Content_Grid1”通过缩小其大小来隐藏有点“流向顶部”动画。这根本没问题 - 我喜欢“Header_Grid2”以及“Content_Grid2”在隐藏“Content_Grid1”的动画播放时流向顶部。 “Header_Grid2”和“Content_Grid2”不应只弹出“Content_Grid1”所在的位置。它应该发生在平滑的动画中。

希望有人明白我的意思。很难解释...... 谢谢

1 个答案:

答案 0 :(得分:0)

据我所知,你无法为折叠方法设置动画,但有各种各样的技巧可以解决这个问题,比如动画不透明度,大小,位置等...