首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

WPF,请教动画重叠

2013-07-16 
WPF,请问动画重叠Window.ResourcesStyle x:Key熊俊Style.TriggersEventTrigger RoutedEventLi

WPF,请问动画重叠


<Window.Resources>
        <Style x:Key="熊俊">
            <Style.Triggers>
                <EventTrigger RoutedEvent="ListBoxItem.MouseEnter">
                    <EventTrigger.Actions>
                        <BeginStoryboard >
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetProperty="FontSize" To="30" Duration="0:0:0.2" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger.Actions>
                </EventTrigger>
                <EventTrigger RoutedEvent="ListBoxItem.MouseLeave">
                    <EventTrigger.Actions>
                        <BeginStoryboard HandoffBehavior="SnapshotAndReplace">
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetProperty="FontSize" BeginTime="0:0:0.5" Duration="0:0:0.2" />
                            </Storyboard>


                        </BeginStoryboard>
                    </EventTrigger.Actions>
                </EventTrigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>
    <Grid Height="297" Name="grid1" Width="380">
        <ListBox Height="157" HorizontalAlignment="Left" Margin="59,32,0,0" Name="listBox1" VerticalAlignment="Top" Width="195">
            <ListBoxItem Content="张三" Style="{StaticResource 熊俊}"/>
            <ListBoxItem Content="李四" Style="{StaticResource 熊俊}" />
        </ListBox>
    </Grid>



代码中,我把BeginStoryboard的HandoffBehavior属性设置为SnapshotAndReplace,但是当移开鼠标的时候,为什么上一个动画还是处于0.5秒的等待状态呢,两个动画衔接的时候,SnapshotAndReplace枚举值会新动画立即取代之前的重叠动画的啊。

哪里出错了呢,请问?
[解决办法]
因为你完成后会回到了初始状态,你应设置动态From
[解决办法]
引用:
Quote: 引用:

因为你完成后会回到了初始状态,你应设置动态From

我说的是,鼠标移到ListBox的一个项之后,迅速移到另一个项上面,为什么上一个动画还是处于0.5秒的等待状态呢(我设置的0.5秒),新动画立即取代之前的重叠动画的啊。

移到另外一个项上去跟你前面的动画有啥关系?你这动画对于每个项都是独立的啊
[解决办法]
应该先停止上一个动画才能让下一个动画正确的运作。lz可以试试。用StopStoryboard。

但是lz应该是希望在鼠标移开的时候让字体恢复?如果是这样,为什么又要开启另一个新的动画呢?

热点排行