Странное поведение Windows .Opacity - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть событие кнопки, которое вызывает сглаживание непрозрачности и сворачивание окна.

private void Button_WindowMinimize(object sender, EventArgs e)
{
    DoubleAnimation WindowOpacity = new DoubleAnimation()
    {
        From = Opacity,
        To = 0,
        Duration = TimeSpan.FromMilliseconds(300)
    };

    WindowOpacity.Completed += (se, ex) => { Opacity = 1; WindowState = WindowState.Minimized; };
    BeginAnimation(Window.OpacityProperty, WindowOpacity);
}

Когда окно свернуто, я вызываю непрозрачность Opacity = 1; (чтобы я мог видеть скриншот на панели задач, когда при наведении курсора мыши).

Почему назначение не выполняется Opacity = 1;? В результате непрозрачность устанавливается на ноль. Почему это не работает? Спасибо

1 Ответ

1 голос
/ 29 апреля 2020

По умолчанию анимации сохраняют окончательное значение после завершения. Если вы хотите сбросить значение после их завершения, вы должны установить FillBehavior на Stop:

DoubleAnimation WindowOpacity = new DoubleAnimation()
        {
            From = Opacity,
            To = 0,
            Duration = TimeSpan.FromMilliseconds(300),
            FillBehavior = FillBehavior.Stop
        };

        WindowOpacity.Completed += (se, ex) => { WindowState = WindowState.Minimized; };
        BeginAnimation(Window.OpacityProperty, WindowOpacity);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...