WPF всплывающее окно закрытия анимации - PullRequest
0 голосов
/ 08 июня 2018
 <Popup     
            AllowsTransparency="True" 
            Focusable="False"                                
            PopupAnimation="Slide"  
            Width="{Binding ElementName=grid,Path=ActualWidth}"
            Height ="{Binding ElementName=grid,Path=ActualHeight}"
            Name="popup" 
            Placement="Relative" 
            PlacementTarget="{Binding grid}" >                    
        </Popup>

Это всплывающее окно открывается с помощью анимации слайдов, когда я устанавливаю для свойства IsOpen значение True.но почему всплывающее окно закрывается сразу без какой-либо анимации.Есть ли способ оживить закрытие всплывающих окон?

1 Ответ

0 голосов
/ 14 июня 2018

Текущая реализация WPF поддерживает только анимацию PopupAnimation.Fade для закрытия всплывающего окна.

Вы можете проверить это в исходном коде :

if (animation == PopupAnimation.Fade)
{
    _popupRoot.Value.SetupFadeAnimation(AnimationDelayTime, visible);
    return true;
}
else if (visible) // only translate when showing popup
{
    // translate the content
    _popupRoot.Value.SetupTranslateAnimations(animation, AnimationDelayTime, AnimateFromRight, AnimateFromBottom);
    return true;
}

ДляPopupAnimation.Fade, показ и закрытие анимированы.Для других типов анимации анимируется только состояние visible (отображается).

Вы не можете изменить это поведение.Конечно, вы можете прикрепить пользовательскую анимацию к своему контенту, но всплывающее окно в любом случае будет немедленно закрыто, поэтому вы ее не увидите:

if (!animating)
    _secHelper.HideWindow();

Если можете, используйте всплывающие окна вместо украшений.Там вы можете настроить анимацию так, как вам нужно.Или используйте всплывающую анимацию для всплывающих окон.

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