首页 > 解决方案 > 如何防止页面加载时故事板自动播放?

问题描述

这个问题似乎没有任何原因。代码中的任何地方都没有Storyboard.Begin()被调用(在当前项目中使用“查找全部”进行搜索),并且没有任何触发器可以看到。

对每一个 Storyboard 演示使用Storyboard.Stop()inPage_Loaded事件解决了这个问题,但它看起来更像是一个 hack 而不是一个解决方案。是什么导致了这种行为,如何解决?

来自这里的类似问题有一个解决方案,但它不适用于这种情况:不使用 Blend

我的代码如下:

    <Page.Resources>
       [...]
       <BeginStoryboard x:Name="StartButtonTranslateAndShrinkStoryboard">
            <Storyboard RepeatBehavior="0x">
                <DoubleAnimation Storyboard.TargetName="StartButtonTransform"
                                 Storyboard.TargetProperty="(CompositeTransform.TranslateX)"
                                 From="0" To="140" Duration="0:0:1"/>
                <DoubleAnimation Storyboard.TargetName="StartButtonTransform"
                                 Storyboard.TargetProperty="(CompositeTransform.TranslateY)"
                                 From="0" To="300" Duration="0:0:1"/>
                <DoubleAnimation Storyboard.TargetName="StartButtonTransform"
                                 Storyboard.TargetProperty="(CompositeTransform.ScaleX)"
                                 From="3" To="1" Duration="0:0:1"/>
                <DoubleAnimation Storyboard.TargetName="StartButtonTransform"
                                 Storyboard.TargetProperty="(CompositeTransform.ScaleY)"
                                 From="3" To="1" Duration="0:0:1"/>
            </Storyboard>
        </BeginStoryboard>
       [...]
    </Page.Resources>

标签: c#xamluwpuwp-xaml

解决方案


不要把它放在<BeginStoryboard>标签中,那是启动故事板的触发器。您可以将情节提要的名称(在您的情况下StartButtonTranslateAndShrinkStoryboard)分配给情节提要本身而不是触发器,它应该可以工作。

<Page.Resources>
   [...]
        <Storyboard RepeatBehavior="0x"  x:Name="StartButtonTranslateAndShrinkStoryboard">
            <DoubleAnimation Storyboard.TargetName="StartButtonTransform"
                             Storyboard.TargetProperty="(CompositeTransform.TranslateX)"
                             From="0" To="140" Duration="0:0:1"/>
            <DoubleAnimation Storyboard.TargetName="StartButtonTransform"
                             Storyboard.TargetProperty="(CompositeTransform.TranslateY)"
                             From="0" To="300" Duration="0:0:1"/>
            <DoubleAnimation Storyboard.TargetName="StartButtonTransform"
                             Storyboard.TargetProperty="(CompositeTransform.ScaleX)"
                             From="3" To="1" Duration="0:0:1"/>
            <DoubleAnimation Storyboard.TargetName="StartButtonTransform"
                             Storyboard.TargetProperty="(CompositeTransform.ScaleY)"
                             From="3" To="1" Duration="0:0:1"/>
        </Storyboard>
   [...]
</Page.Resources>

来自MSDN

开始情节提要的触发动作。不常用。


推荐阅读