使用XAML设置故事板完成后元素的可见性为Collapsed

34

我有一个故事板动画,使用Opacity属性将控件逐渐淡出视野。当它完成后,我希望将控件的可见性设置为Collapsed。

我还想做相反的操作...将可见性设置为Visible,然后使用故事板将控件淡入视野。

我知道可以连接事件,但我希望全部在XAML中完成。这可能吗?

1个回答

72

你也可以在动画中这样做

<Window.Resources>
    <Storyboard x:Key="OnLoaded1">
        <ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="button" Storyboard.TargetProperty="(UIElement.Visibility)">
            <DiscreteObjectKeyFrame KeyTime="00:00:00" Value="{x:Static Visibility.Visible}"/>
            <DiscreteObjectKeyFrame KeyTime="00:00:00.8000000" Value="{x:Static Visibility.Collapsed}"/>
            <DiscreteObjectKeyFrame KeyTime="00:00:01.4000000" Value="{x:Static Visibility.Visible}"/>
        </ObjectAnimationUsingKeyFrames>
    </Storyboard>
</Window.Resources>
<Window.Triggers>
    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
        <BeginStoryboard Storyboard="{StaticResource OnLoaded1}"/>
    </EventTrigger>
</Window.Triggers>

2
+1 太棒了!这是一个很棒的技巧...我简直不敢相信我以前没见过它。谢谢。 - Cameron Peters

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接