Example #1
0
        /// <summary>
        /// Вызывается при завершении раскадровки.
        /// </summary>
        private void Storyboard_Completed(object sender, object e)
        {
            var obj = sender as Storyboard;

            obj.Completed -= Storyboard_Completed;
            if (obj.Children.Count == 0)
            {
                return;
            }

            var target = StoryboardServices.GetTarget(obj.Children[0]) as UIElement;

            target.Visibility = Visibility.Collapsed;

            if (IsFirstRoot)
            {
                RootPanel.Children.Remove(target);
            }
            else
            {
                SubRootPanel.Children.Remove(target);
            }
            ElementsOnScreen.Remove(target);
            ElementsOnScreenCount--;
        }
Example #2
0
        /// <summary>
        /// Вовзращает анимацию исчезновения для указанного элемента.
        /// </summary>
        /// <param name="element">Элемент, к которому применяется анимация.</param>
        /// <param name="duration">Длительность анимации.</param>
        private static Timeline CreateFadeOutTimeline(UIElement element, double duration)
        {
            var timeline = new DoubleAnimation();

            timeline.Duration = TimeSpan.FromSeconds(duration);
            timeline.To       = 0;

            StoryboardServices.SetTarget(timeline, element);
            Storyboard.SetTargetProperty(timeline, OpacityPropertyPath);

            return(timeline);
        }
Example #3
0
        /// <summary>
        /// Возвращает анимацию изменения фонового цвета элемента.
        /// </summary>
        /// <param name="element">Элемент, к которому применяется анимация.</param>
        /// <param name="fillColor">Цвет, на который требуется изменить цвет.</param>
        /// <param name="duration">ДЛительность анимации.</param>
        private static Timeline CreateChangeColorTimeline(UIElement element, Color fillColor, double duration)
        {
            var timeline = new ColorAnimation();

            timeline.Duration = TimeSpan.FromSeconds(duration);
            timeline.To       = fillColor;

            StoryboardServices.SetTarget(timeline, element);
            Storyboard.SetTargetProperty(timeline, FillProperty);

            return(timeline);
        }
Example #4
0
        /// <summary>
        /// Возвращает анимацию увеличения высоты для указанного элемента.
        /// </summary>
        /// <param name="element">Элемент, к которому применяется анимация.</param>
        /// <param name="scaleFactor">Значение, во сколько раз требуется изменить Высоту.</param>
        /// <param name="IsInverted">Требуется ли инвертировать значение.</param>
        /// <param name="duration">Длительность анимации.</param>
        private static Timeline CreateResizeHeightTimeline(UIElement element, double resizeFactor, bool IsInverted, double duration)
        {
            var timeline = new DoubleAnimation();

            timeline.Duration = TimeSpan.FromSeconds(duration);
            timeline.From     = 0;
            if (IsInverted)
            {
                timeline.To = -resizeFactor;
            }
            else
            {
                timeline.To = resizeFactor;
            }

            StoryboardServices.SetTarget(timeline, element);
            Storyboard.SetTargetProperty(timeline, ScaleYPropertyPath);

            return(timeline);
        }