【问题标题】:WPF rolldown animationWPF 滚动动画
【发布时间】:2013-11-23 07:34:31
【问题描述】:

我想在 WPF 中创建一个容器,它将显示可变数量的项目。这些项目将通过 DependencyProperty 通过 Collection 附加到容器。

只要未设置项目,我想显示该容器已卷起。然后,当设置项目时,我想动画滚动容器到大小,当所有项目都可用时。

我是 WPF 动画的新手,但它们对我来说似乎很简单。我不知道的是如何在不以像素为单位输入精确大小的情况下指定容器的开始和结束大小。我需要从(不带额外控件的大小)到(带额外控件的大小)制作动画,但我完全不知道从哪里开始。

如何在 WPF 动画故事板中指定这样的相对大小?

【问题讨论】:

    标签: wpf animation controls


    【解决方案1】:

    您可以使用ActualHeight 属性执行类似的操作:

    <Grid Name="LayoutRoot">
        <Grid Name="Container" ClipToBounds="True">
            <ListBox ItemsSource="{Binding YourCollection}" ... >
                <ListBox.Triggers>
                    <EventTrigger RoutedEvent="ListBox.SizeChanged">
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetName="Container" 
    Storyboard.TargetProperty="Height" To="{Binding ActualHeight, ElementName=LayoutRoot, 
    FallbackValue=0, Mode=OneWay}" Duration="00:00:0.3" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </ListBox.Triggers>
            </ListBox>
        </Grid>
    </Grid>
    

    请注意,我没有使用 DoubleAnimation 的 From 属性...这将使动画在添加每个项目时“增长”。

    【讨论】:

    • 谢谢 - 我将不得不调查这个解决方案。就我而言,这是显示与否的问题。控件显示时没有内容,当附加该内容时,控件应向下滚动以显示它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 2020-02-18
    • 1970-01-01
    • 2022-07-06
    • 2011-12-24
    相关资源
    最近更新 更多