/// <summary> /// Обработчик Complete по умолчанию /// </summary> private void HiderShower_Complete() { FrameworkElement body = Container.GetComponent <HaveBody>().Body; TDrawEffects.AllAnimationNull(body); body.Opacity = CurOpacity; body.Margin = CurMargin; }
/// <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); }
public void MoveTo(double x, double y) { TDrawEffects.AllAnimationNull(Container.GetComponent <HaveBody>().Body); TDrawEffects.MoveTo(Container.GetComponent <HaveBody>().Body, x, y); }