我认为我的标题有点令人困惑,所以让我详细解释一下我的问题。
我有一个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”所在的位置。它应该发生在平滑的动画中。
希望有人明白我的意思。很难解释...... 谢谢
答案 0 :(得分:0)
据我所知,你无法为折叠方法设置动画,但有各种各样的技巧可以解决这个问题,比如动画不透明度,大小,位置等...