【问题标题】:WPF Storyboard with images, start board when it's visible带有图像的 WPF 故事板,当它可见时启动板
【发布时间】:2017-02-25 02:40:32
【问题描述】:

我对 WPF 很陌生,并尝试了一些带有情节提要的东西,我想做的是在情节提要第一次可见时启动它..(因为它是向导中的一个步骤,而不是加载时可见)

 <Grid Name="GridLoading" Visibility="Hidden" >

        <Image>
            <Image.Triggers>
                <EventTrigger RoutedEvent="Loaded">

                    <BeginStoryboard >
                        <Storyboard Name="LoadingStoryBoard" Completed="LoadingStoryBoard_Completed">
                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Source"
                                               Duration="0:0:4">
                                <DiscreteObjectKeyFrame KeyTime="0:0:0">
                                    <DiscreteObjectKeyFrame.Value>
                                        <BitmapImage UriSource="C:\...\2a-loading.jpg"/>
                                    </DiscreteObjectKeyFrame.Value>
                                </DiscreteObjectKeyFrame>
                                <DiscreteObjectKeyFrame KeyTime="0:0:1">
                                    <DiscreteObjectKeyFrame.Value>
                                        <BitmapImage UriSource="C:\...\2b-loading.jpg"/>
                                    </DiscreteObjectKeyFrame.Value>
                                </DiscreteObjectKeyFrame>
                                <DiscreteObjectKeyFrame KeyTime="0:0:2">
                                    <DiscreteObjectKeyFrame.Value>
                                        <BitmapImage UriSource="C:\...\2c-loading.jpg"/>
                                    </DiscreteObjectKeyFrame.Value>
                                </DiscreteObjectKeyFrame>
                                <DiscreteObjectKeyFrame KeyTime="0:0:3">
                                    <DiscreteObjectKeyFrame.Value>
                                        <BitmapImage UriSource="C:\...\2d-loading.jpg"/>
                                    </DiscreteObjectKeyFrame.Value>
                                </DiscreteObjectKeyFrame>
                            </ObjectAnimationUsingKeyFrames>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Image.Triggers>
        </Image>

    </Grid>

任何指针都非常感谢

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    这是重复的:Activate Storyboard on Visibility Changed

    取自该问题中的accepted answer

    <Style x:Key="AnimationImageStyle" TargetType="{x:Type Image}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=IsVisible}" 
                     Value="True">
    
            <DataTrigger.EnterActions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetProperty="Opacity"
                                         From="1.0" To="0.1"
                                         Duration="0:0:0.5"
                                         AutoReverse="True"
                                         RepeatBehavior="0:0:2" />
                    </Storyboard>
                </BeginStoryboard>
            </DataTrigger.EnterActions>
        </DataTrigger>
    </Style.Triggers>
    

    &lt;DataTrigger.EnterActions&gt; 中的情节提要替换为您的情节提要。

    向更有经验的用户提出的问题:如何将帖子标记为重复?还是仅适用于模组?

    【讨论】:

    • 谢谢!我现在唯一需要弄清楚的是在动画完成时执行一些代码,因为 Completed="LoadingStoryBoard_Completed" 如果它在样式元素内似乎是无效的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    相关资源
    最近更新 更多