Непрозрачность анимации формы WPF не заканчивается, если она менее 1 секунды - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть форма, которую я хотел бы иметь с прозрачностью до 70%, если мышь, если над формой, код, который у меня есть, работает правильно, только если я установил время анимации на 1 секунду. Что-нибудь меньшее, чем это, и анимация, кажется, останавливается, прежде чем вернуться к 100% непрозрачности.

<Window.Resources>
    <Style TargetType="local:MainWindow">
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Trigger.EnterActions>
                    <BeginStoryboard>
                        <Storyboard
                                Storyboard.TargetProperty="(Window.Opacity)"
                                Duration="0:0:0.3">
                            <DoubleAnimation To="1" />
                        </Storyboard>
                    </BeginStoryboard>
                </Trigger.EnterActions>
                <Trigger.ExitActions>
                    <BeginStoryboard>
                        <Storyboard
                                Storyboard.TargetProperty="(Window.Opacity)"
                                Duration="0:0:0.3">
                            <DoubleAnimation To=".70" />
                        </Storyboard>
                    </BeginStoryboard>
                </Trigger.ExitActions>
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Resources>

1 Ответ

1 голос
/ 19 февраля 2020

Storyboard.TargetProperty и Duration должны быть установлены на анимациях, а не на раскадровке.

Если вы установите длительность на раскадровке, анимации будут работать по умолчанию с длительностью 1 секунда.

<Trigger Property="IsMouseOver" Value="True">
    <Trigger.EnterActions>
        <BeginStoryboard>
            <Storyboard>
                <DoubleAnimation
                    Storyboard.TargetProperty="Opacity"
                    To="1" Duration="0:0:0.3"/>
            </Storyboard>
        </BeginStoryboard>
    </Trigger.EnterActions>
    <Trigger.ExitActions>
        <BeginStoryboard>
            <Storyboard>
                <DoubleAnimation
                    Storyboard.TargetProperty="Opacity"
                    To=".7" Duration="0:0:0.3" />
            </Storyboard>
        </BeginStoryboard>
    </Trigger.ExitActions>
</Trigger>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...