0

我想知道是否有办法设置触发器MouseHover,而不是MouseOver

我希望当用户将鼠标悬停在指定区域上 X 秒时发生动作,而不是当他们只是将鼠标悬停在它上面时。

4

1 回答 1

1

要使IsMouseOver触发器在 X 秒后开始,您应该能够使用 Storybard 并设置BeginTime属性。这是一个示例,Button当鼠标悬停 2 秒时,它的大小增加了 50%。
要跳过动画部分,您可以Duration="0"DoubleAnimations设置

<Button Content="Button"
        Height="23"
        Width="75"
        RenderTransformOrigin="0.5 0.5">
    <Button.RenderTransform>
        <ScaleTransform />
    </Button.RenderTransform>
    <Button.Style>
        <Style TargetType="Button">
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Trigger.EnterActions>
                        <BeginStoryboard>
                            <Storyboard BeginTime="00:00:02">
                                <DoubleAnimation Storyboard.TargetProperty="(Button.RenderTransform).(ScaleTransform.ScaleX)" To="1.5"/>
                                <DoubleAnimation Storyboard.TargetProperty="(Button.RenderTransform).(ScaleTransform.ScaleY)" To="1.5"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </Trigger.EnterActions>
                    <Trigger.ExitActions>
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetProperty="(Button.RenderTransform).(ScaleTransform.ScaleX)" To="1.0"/>
                                <DoubleAnimation Storyboard.TargetProperty="(Button.RenderTransform).(ScaleTransform.ScaleY)" To="1.0"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </Trigger.ExitActions>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>
于 2011-01-19T21:42:05.763 回答