让IsMouseOver =“True”即使在鼠标停止后,触发效果也会保持片刻

时间:2012-04-12 03:59:44

标签: wpf xaml triggers

当我将鼠标放在第1张图像上时,会出现第2张图像。当我将鼠标放在第一张图像上时,第二张图像将立即消失。如果在第一张图像上放下鼠标后,如何让第二张图像继续显示几秒钟?

<EventTrigger RoutedEvent="Button.Click" SourceName="P">
    <EventTrigger.Actions>
        <BeginStoryboard Storyboard="{StaticResource showA}"/>
    </EventTrigger.Actions>
</EventTrigger>

<Button Grid.Column="1" Command="{Binding Path=PressC}" CommandParameter="cam" Style="{StaticResource TransparentButton}">
            <Button.Template>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Grid>
                        <Image Name="1" Source="/W;component/Images/1.png" Height="100" />
                        <Image Name="2" Source="/W;component/Images/2.png" Height="200" Width="100" Margin="50,-33,-50,0" Visibility="Hidden" />
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">          
                            <Trigger.EnterActions>
                                    <BeginStoryboard>
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="imgPressedKeyboard05" Storyboard.TargetProperty="Opacity" From="0" To="2" Duration="0:0:.5" BeginTime="0:0:0"/>
                                            <DoubleAnimation Storyboard.TargetName="imgPressedKeyboard05" Storyboard.TargetProperty="Opacity" From="2" To="0" Duration="0:0:.5" BeginTime="0:0:1"/>
                                        </Storyboard>
                                    </BeginStoryboard>
                                </Trigger.EnterActions>

                            <Setter Property="Panel.ZIndex" Value="999"/>                           
                            <Setter TargetName="pressed5" Property="Visibility" Value="Visible"/>                                    
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Button.Template>
        </Button>

1 个答案:

答案 0 :(得分:1)

使用动画而不是简单的SetterEnterActions中的一个使其可见,ExitActions中的一个在给定时间后隐藏它。要为Visibility设置动画,您可以使用ObjectAnimationUsingKeyFrames