【问题标题】:Visibility Storyboard works only partial可见性情节提要仅部分起作用
【发布时间】:2018-12-18 23:58:15
【问题描述】:

请看这个Storyboard:

<Storyboard x:Key="visibilityStoryboardn">
            <ObjectAnimationUsingKeyFrames BeginTime="0:0:0" Storyboard.TargetProperty="Visibility">
                <DiscreteObjectKeyFrame KeyTime="0">
                    <DiscreteObjectKeyFrame.Value>
                        <Visibility>Visible</Visibility>
                    </DiscreteObjectKeyFrame.Value>
                </DiscreteObjectKeyFrame>
            </ObjectAnimationUsingKeyFrames>
            <DoubleAnimation BeginTime="0:0:0.0" Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:2.0"/>
            <DoubleAnimation BeginTime="0:0:10.0" Storyboard.TargetProperty="Opacity" From="1" To="0" Duration="0:0:2.0"/>
            <ObjectAnimationUsingKeyFrames BeginTime="0:0:2" Storyboard.TargetProperty="Visibility">
                <DiscreteObjectKeyFrame KeyTime="0">
                    <DiscreteObjectKeyFrame.Value>
                        <Visibility>Collapsed</Visibility>
                    </DiscreteObjectKeyFrame.Value>
                </DiscreteObjectKeyFrame>
            </ObjectAnimationUsingKeyFrames>
        </Storyboard>

我尝试将我的元素 VisibilityCollapsed 更改为 Visible,持续时间为 2 秒,然后等待 10 秒并将 Visibility 更改回 Collapsed

目前这仅做第一件事,我的意思是这会将我的元素更改为 Visible,持续时间为 2 秒,然后立即开始将其隐藏回 Collapsed,但现在没有动画样式。

【问题讨论】:

  • 动画发生的顺序,不是您在 xaml 代码中放置它们的顺序。正如答案中所指出的,使用 BeginTime / KeyTime 在时间轴上安排您的动画。

标签: wpf animation visibility


【解决方案1】:

我认为您唯一的问题是您为 Collapsed 关键帧定义了 BeginTime="0:0:2"。应该是BeginTime="0:0:12"

<ObjectAnimationUsingKeyFrames BeginTime="0:0:0" Storyboard.TargetProperty="Visibility">
    <DiscreteObjectKeyFrame KeyTime="0:0:0">
        <DiscreteObjectKeyFrame.Value>
            <Visibility>Visible</Visibility>
        </DiscreteObjectKeyFrame.Value>
    </DiscreteObjectKeyFrame>
    <DiscreteObjectKeyFrame KeyTime="0:0:12.0">
        <DiscreteObjectKeyFrame.Value>
            <Visibility>Collapsed</Visibility>
        </DiscreteObjectKeyFrame.Value>
    </DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
<DoubleAnimation BeginTime="0:0:0.0" Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:2.0"/>
<DoubleAnimation BeginTime="0:0:10.0" Storyboard.TargetProperty="Opacity" From="1" To="0" Duration="0:0:2.0"/>

【讨论】:

    猜你喜欢
    • 2018-11-16
    • 2014-04-19
    • 2011-01-01
    • 2020-12-02
    • 2015-08-27
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多