UWP - версия 1809, подключенные / скоординированные анимации не настроены одинаково - PullRequest
0 голосов
/ 19 февраля 2020

Цель: Я работаю над приложением UWP, которое было создано до Версии 1809. Мы использовали подключенную анимацию, чтобы анимировать кнопку, нажимаемую от страницы 1 до заголовка страницы 2 во время навигации. На странице 2 есть текст, который следует за анимированной кнопкой, как будто она закреплена под ней во время навигации (координированная анимация). Все работало и выглядело хорошо. Это то, к чему мы должны вернуться.

Проблема: Мы хотим обновить структуру, чтобы использовать новые функции в версии 1809. Но среда содержит обновления для подключенных анимаций и скоординированные анимации, которые изменяют их функциональность. По умолчанию существует новая «Анимация гравитации», которой следуют связанные анимации Кнопка опускается и встает на место в последнюю минуту, вместо того, чтобы двигаться прямо на место, как раньше.

Вы можете прочитать об изменениях здесь: MS DOCS: подключенная анимация для приложений UWP

В приведенной выше документации рекомендуется изменить конфигурацию для использования BasicConnectedAnimationConfiguration. Мы сделали это, и это немного помогло. Кнопка теперь анимируется по прямой линии, как и раньше. Хорошо.

К сожалению, координированные компоненты по-прежнему используют конфигурацию "Гравитация". Они опускаются и встают на свои места, не будучи прикрепленными к кнопке / заголовку анимации. Кроме того, у них во время анимации есть тень, которая выглядит довольно плохо, поскольку она создает глубину между скоординированными компонентами, которые должны выглядеть так, как будто они все находятся на одной плоскости z. 1020 *: Как сделать так, чтобы координированные элементы в анимации использовали базовую конфигурацию BasicConnectedAnimationConfiguration вместо новой конфигурации GravityConnectedAnimationConfiguration по умолчанию? В документации показано, как переопределить подключенную анимацию, но не координированную.

Вот как я ее реализую:

Page1.cs:

 protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
    {
        try
        {
            ConnectedAnimationService.GetForCurrentView()?
                .PrepareToAnimate("ThumbnailToHeaderAnimation", _Button);

        }
        catch (Exception ex)
        {

        }
    }

Page2.cs :

protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
        _animation = ConnectedAnimationService.GetForCurrentView().GetAnimation("ThumbnailToHeaderAnimation");
        _animation.Configuration = new BasicConnectedAnimationConfiguration();
        if (_animation != null)
        {
            _animation.Completed += Animation_Completed;
            isAnimating = _animation.TryStart(HeaderImage, new UIElement[] { HeaderTitleCard, HeaderDescriptionCard });
        }

Редактировать: видео этой проблемы можно найти здесь: https://1drv.ms/v/s! Arqp85_Yjalzj554Bm39QAF6y_LkUw

Ссылка на образец проекта, который я создал для демонстрации выпуск: https://github.com/BrandonKuenzi/CoordinatedAnimationIssue

1 Ответ

0 голосов
/ 28 февраля 2020

К сожалению, это ограничение согласованных анимаций в настоящее время. Мы отслеживаем исправление этой ошибки в основном репозитории WinUI: https://github.com/microsoft/microsoft-ui-xaml/issues/2035

Тем временем рассмотрите возможность замены согласованной анимации на подключенную анимацию, для которой задана конфигурация, и вместо этого соединитесь между текстом и пустой сеткой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...