Триггер на MouseHover? - PullRequest
       6

Триггер на MouseHover?

0 голосов
/ 19 января 2011

Мне было интересно, есть ли способ установить триггер на MouseHover, а не MouseOver.

Я хотел бы, чтобы действие происходило, когда пользователь удерживает указатель мыши над указанной областью в течение X секунд, а не когда он просто мыши над ней.

1 Ответ

1 голос
/ 20 января 2011

Для запуска триггера IsMouseOver через X секунд вы должны иметь возможность использовать раскадровку и установить свойство BeginTime. Вот пример для Button, который увеличивает его размер на 50%, когда мышь наводит его на 2 секунды.
Чтобы пропустить анимационную часть, вы можете установить Duration="0" для DoubleAnimation s

<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>
...