예제 #1
0
        /// <summary>
        /// Обработчик Complete по умолчанию
        /// </summary>
        private void HiderShower_Complete()
        {
            FrameworkElement body = Container.GetComponent <HaveBody>().Body;

            TDrawEffects.AllAnimationNull(body);
            body.Opacity = CurOpacity;
            body.Margin  = CurMargin;
        }
예제 #2
0
        /// <summary>
        /// Запускаем анимацию появления/исчезновения (прозрачность и отступ изменяем плавно)
        /// </summary>
        /// <param name="opacity"></param>
        /// <param name="opacityDuration"></param>
        /// <param name="margin"></param>
        /// <param name="marginDuration"></param>
        public void Show(double opacity, TimeSpan opacityDuration, Thickness margin, TimeSpan marginDuration)
        {
            //вычисляем сколько займет операция
            TimeSpan fullTime = TimeSpan.FromMilliseconds(Math.Max(opacityDuration.TotalMilliseconds, marginDuration.TotalMilliseconds));

            CurMargin  = margin;
            CurOpacity = opacity;
            FrameworkElement body = Container.GetComponent <HaveBody>().Body;

            //Удаляем анимацию если какая-то есть и включаем анимацию свою
            TDrawEffects.AllAnimationNull(body);
            body.BeginAnimation(FrameworkElement.OpacityProperty, new DoubleAnimation(opacity, opacityDuration));
            body.BeginAnimation(FrameworkElement.MarginProperty, new ThicknessAnimation(margin, marginDuration));
            //событие Complete вызывается когда все закончилось (это надежнее чем полагаться на complete встроенныый в Animation - тот может и не сработать)
            ToolsTimer.Delay(() => { Complete(); }, fullTime);
        }
예제 #3
0
 public void MoveTo(double x, double y)
 {
     TDrawEffects.AllAnimationNull(Container.GetComponent <HaveBody>().Body);
     TDrawEffects.MoveTo(Container.GetComponent <HaveBody>().Body, x, y);
 }