/// <summary> /// Bounces the specified element. /// </summary> /// <param name="element">The element.</param> /// <param name="direction">The direction.</param> /// <param name="whenDone">The when done.</param> public static void Bounce(UIElement element, Direction direction, EventHandler whenDone = null) { var translateTransform = new TranslateTransform(); element.RenderTransform = translateTransform; switch (direction) { case Direction.Up: translateTransform.BeginAnimation( TranslateTransform.YProperty, CreateDoubleAnimation( 0, -15, 0.2, (o, e) => translateTransform.BeginAnimation(TranslateTransform.YProperty, CreateDoubleAnimationWithEasing(-15, 0, 0.8, new BounceEase { Bounces = 3, EasingMode = EasingMode.EaseOut })), whenDone)); break; case Direction.Down: translateTransform.BeginAnimation( TranslateTransform.YProperty, CreateDoubleAnimation( 0, 15, 0.2, (o, e) => translateTransform.BeginAnimation(TranslateTransform.YProperty, CreateDoubleAnimationWithEasing(15, 0, 0.8, new BounceEase { Bounces = 3, EasingMode = EasingMode.EaseOut })), whenDone)); break; } }
public static void MoveWithRotationAndFadeOut(FrameworkElement element, Point to, double rotationAngle, double seconds, AnimationCompletedDelegate callback) { TransformGroup transformGroup = new TransformGroup(); transformGroup.Children.Add(new RotateTransform(rotationAngle, element.Width / 2, element.Height / 2)); Duration duration = new Duration(TimeSpan.FromSeconds(seconds)); DoubleAnimation animationX = new DoubleAnimation(to.X, duration); DoubleAnimation animationY = new DoubleAnimation(to.Y, duration); DoubleAnimation fadeOutAnimation = new DoubleAnimation { From = 1, To = 0.4, Duration = duration, FillBehavior = FillBehavior.Stop }; animationX.Completed += (sender, _) => callback(sender, _); TranslateTransform trans = new TranslateTransform(); element.RenderTransform = transformGroup; trans.BeginAnimation(TranslateTransform.XProperty, animationX); trans.BeginAnimation(TranslateTransform.YProperty, animationY); element.Opacity = 0.4; element.BeginAnimation(UIElement.OpacityProperty, fadeOutAnimation); transformGroup.Children.Add(trans); }
private void ExpandMenu(Ellipse item, int distance) { DoubleAnimation animation = new DoubleAnimation(0, distance, TimeSpan.FromSeconds(.5)); TranslateTransform move = new TranslateTransform(); item.RenderTransform = move; move.BeginAnimation(TranslateTransform.XProperty, animation); move.BeginAnimation(TranslateTransform.YProperty, animation); }
private void AnimateLayout() { var startDelay = new TimeSpan(); foreach (UIElement child in Children) { Point arrangePosition; Transform currentTransform = GetCurrentLayoutInfo(child, out arrangePosition); bool bypassTransform = _isAnimationValid != (int) GetValue(IsAnimationValidProperty); // If we had previously stored an arrange position, see if it has moved if (child.ReadLocalValue(SavedArrangePositionProperty) != DependencyProperty.UnsetValue) { var savedArrangePosition = (Point) child.GetValue(SavedArrangePositionProperty); // If the arrange position hasn't changed, then we've already set up animations, etc // and don't need to do anything if (!AreClose(savedArrangePosition, arrangePosition)) { // If we apply the current transform to the saved arrange position, we'll see where // it was last rendered Point lastRenderPosition = currentTransform.Transform(savedArrangePosition); if (bypassTransform) lastRenderPosition = (Point) child.GetValue(SavedCurrentPositionProperty); else child.SetValue(SavedCurrentPositionProperty, lastRenderPosition); // Transform the child from the new location back to the old position var newTransform = new TranslateTransform(); SetLayout2LayoutTransform(child, newTransform); // Decay the transformation with an animation double startValue = lastRenderPosition.X - arrangePosition.X; newTransform.BeginAnimation(TranslateTransform.XProperty, MakeStaticAnimation(startValue, startDelay)); newTransform.BeginAnimation(TranslateTransform.XProperty, MakeAnimation(startValue, startDelay), HandoffBehavior.Compose); startValue = lastRenderPosition.Y - arrangePosition.Y; newTransform.BeginAnimation(TranslateTransform.YProperty, MakeStaticAnimation(startValue, startDelay)); newTransform.BeginAnimation(TranslateTransform.YProperty, MakeAnimation(startValue, startDelay), HandoffBehavior.Compose); // Next element starts to move a little later startDelay = startDelay.Add(CascadingDelay); } } // Save off the previous arrange position child.SetValue(SavedArrangePositionProperty, arrangePosition); } // currently WPF doesn't allow me to read a value right after the call to BeginAnimation // this code enables me to trick it and know whether I can trust the current position or not. _isAnimationValid = (int) GetValue(IsAnimationValidProperty) + 1; BeginAnimation(IsAnimationValidProperty, new Int32Animation(_isAnimationValid, _isAnimationValid, new Duration(), FillBehavior.HoldEnd)); }
/// <summary> /// Funkcja do animacji kropli wody /// </summary> /// <param name="target">Tutaj podajemy obiekt, który chcemy animować - w tym przypadku przesuwać wzdłuż osi X i Y</param> /// <param name="animacjaDo">Iterator węzła od którego zaczynamy animacje</param> /// <param name="animacjaOd">Iterator węzła do którego idzie animacja</param> private void AnimacjaRuchu(Image target, int animacjaDo,int animacjaOd) { double newX = wezel[animacjaDo].X - wezel[animacjaOd].X; double newY = wezel[animacjaDo].Y - wezel[animacjaOd].Y; TranslateTransform trans = new TranslateTransform(); target.RenderTransform = trans; DoubleAnimation anim1 = new DoubleAnimation(newX, TimeSpan.FromSeconds(2)); DoubleAnimation anim2 = new DoubleAnimation(newY, TimeSpan.FromSeconds(2)); trans.BeginAnimation(TranslateTransform.XProperty, anim1); trans.BeginAnimation(TranslateTransform.YProperty, anim2); }
public static void MoveTo(this Image target, double newX, double newY) { Vector offset = VisualTreeHelper.GetOffset(target); var top = offset.Y; var left = offset.X; TranslateTransform trans = new TranslateTransform(); target.RenderTransform = trans; DoubleAnimation anim1 = new DoubleAnimation(0, newY - top, TimeSpan.FromSeconds(10)); DoubleAnimation anim2 = new DoubleAnimation(0, newX - left, TimeSpan.FromSeconds(10)); trans.BeginAnimation(TranslateTransform.YProperty, anim1); trans.BeginAnimation(TranslateTransform.XProperty, anim2); }
/// <summary> /// Called when panel's layout is updated /// </summary> /// <remarks> /// Note: This is actually called when any layouts are updated /// </remarks> private void PanelLayoutUpdated(object sender, EventArgs e) { // At this point, the panel has moved the children to the new locations, but hasn't // been rendered foreach (UIElement child in _panel.Children) { // Figure out where child actually is right now. This is a combination of where the // panel put it and any render transform currently applied Point currentPosition = child.TransformToAncestor(_panel).Transform(new Point()); // See what transform is being applied Transform currentTransform = child.RenderTransform; // Compute where the panel actually arranged it to Point arrangePosition = currentPosition; if (currentTransform != null) { // Undo any transform we applied arrangePosition = currentTransform.Inverse.Transform(arrangePosition); } // If we had previously stored an arrange position, see if it has moved if (child.ReadLocalValue(SavedArrangePositionProperty) != DependencyProperty.UnsetValue) { Point savedArrangePosition = (Point)child.GetValue(SavedArrangePositionProperty); // If the arrange position hasn't changed, then we've already set up animations, etc // and don't need to do anything if (!AreReallyClose(savedArrangePosition, arrangePosition)) { // If we apply the current transform to the saved arrange position, we'll see where // it was last rendered Point lastRenderPosition = currentTransform.Transform(savedArrangePosition); // Transform the child from the new location back to the old position TranslateTransform newTransform = new TranslateTransform(); child.RenderTransform = newTransform; // Decay the transformation with an animation newTransform.BeginAnimation(TranslateTransform.XProperty, MakeAnimation(lastRenderPosition.X - arrangePosition.X)); newTransform.BeginAnimation(TranslateTransform.YProperty, MakeAnimation(lastRenderPosition.Y - arrangePosition.Y)); } } // Save off the previous arrange position child.SetValue(SavedArrangePositionProperty, arrangePosition); } }
public void LoadClick(object sender, EventArgs e) { //MarkAllUiElementsWithTags(); //to delete it later var but = sender as Button; var move = new TranslateTransform(0, 0); var anim = new DoubleAnimation() { Duration = new Duration(TimeSpan.FromSeconds(0.7)), To = but.Margin.Left + Load.Width + 5, AccelerationRatio = 0.5, }; anim.Completed += MoveToLoad; but.RenderTransform = move; move.BeginAnimation(TranslateTransform.XProperty, anim); var moveOther = new TranslateTransform(0, 0); var animOther = new DoubleAnimation() { Duration = new Duration(TimeSpan.FromSeconds(0.5)), To = -Create.Width - 5, AccelerationRatio = 0.5, }; Create.RenderTransform = moveOther; moveOther.BeginAnimation(TranslateTransform.XProperty, animOther); }
public static void MoveCharacterPan(TranslateTransform transform, DependencyProperty propertyToPan, Double toValue) { if (transform != null) { UiThread.Execute(() => transform.BeginAnimation(propertyToPan, GetMoveCharacterPanAnimation(toValue), HandoffBehavior.SnapshotAndReplace)); } }
protected internal override void BeginTransition(TransitionPresenter transitionElement, ContentPresenter oldContent, ContentPresenter newContent) { TranslateTransform tt = new TranslateTransform(StartPoint.X * transitionElement.ActualWidth, StartPoint.Y * transitionElement.ActualHeight); if (IsNewContentTopmost) newContent.RenderTransform = tt; else oldContent.RenderTransform = tt; DoubleAnimation da = new DoubleAnimation(EndPoint.X * transitionElement.ActualWidth, Duration); tt.BeginAnimation(TranslateTransform.XProperty, da); da.To = EndPoint.Y * transitionElement.ActualHeight; da.Completed += delegate { EndTransition(transitionElement, oldContent, newContent); }; tt.BeginAnimation(TranslateTransform.YProperty, da); }
void ConfirmationLocalModalInteractionDialog_Loaded(object sender, RoutedEventArgs e) { DoubleAnimation doubleAnim = new DoubleAnimation(-460, 0, new Duration(new TimeSpan(0, 0, 0, 0, 200))); var trans = new TranslateTransform(); this.RenderTransform = trans; trans.BeginAnimation(TranslateTransform.XProperty, doubleAnim); }
private void decreaseDigit(TranslateTransform tf, TimeSpan time) { double newPos = tf.Y; newPos = newPos + resolutionPerNumber; DoubleAnimation animationTB1 = new DoubleAnimation(newPos, time); tf.BeginAnimation(TranslateTransform.YProperty, animationTB1); }
public void Grow() { BringIntoView(); const int mult = 10; const double duration = 0.1; RenderTransform = new TranslateTransform(); var translateAnimation = new DoubleAnimation { From = 0, To = (-Width * mult / 2), Duration = TimeSpan.FromSeconds(duration), AutoReverse = true }; RenderTransform.BeginAnimation(TranslateTransform.XProperty, translateAnimation); RenderTransform.BeginAnimation(TranslateTransform.YProperty, translateAnimation); Ellipse.RenderTransform = new ScaleTransform(); var scaleAnimation = new DoubleAnimation { From = 1, To = mult, Duration = TimeSpan.FromSeconds(duration), AutoReverse = true }; Ellipse.RenderTransform.BeginAnimation(ScaleTransform.ScaleXProperty, scaleAnimation); Ellipse.RenderTransform.BeginAnimation(ScaleTransform.ScaleYProperty, scaleAnimation); //(RadialGradientBrush)FindResource("RedGradient") //var colorTransform = new ColorAnimation {To = Colors.Red, Duration=TimeSpan.FromSeconds(0.1), AutoReverse= true}; //var brush = (RadialGradientBrush)FindResource("RedGradient"); //brush.BeginAnimation(); }
/// <summary> /// Starts the animation for the new content /// </summary> private void BeginAnimateContentReplacement() { var newContentTransform = new TranslateTransform(); var oldContentTransform = new TranslateTransform(); m_paintArea.RenderTransform = oldContentTransform; m_mainContent.RenderTransform = newContentTransform; m_paintArea.Visibility = Visibility.Visible; newContentTransform.BeginAnimation(TranslateTransform.XProperty, CreateAnimation(this.ActualWidth, 0)); oldContentTransform.BeginAnimation(TranslateTransform.XProperty, CreateAnimation(0, -this.ActualWidth, (s, e) => m_paintArea.Visibility = Visibility.Hidden)); }
private void AnimateFirstBull() { DoubleAnimation translate = new DoubleAnimation(); translate.From = 0; translate.To = 110; translate.AutoReverse = false; translate.Duration = new Duration(TimeSpan.FromSeconds(1.300)); TranslateTransform tt = new TranslateTransform(); bull.RenderTransform = tt; tt.BeginAnimation(TranslateTransform.YProperty, translate); }
private void AnimateFrostGiant(object sender, EventArgs e) { TranslateTransform translate = new TranslateTransform(); DoubleAnimation animate; FrostGiant.RenderTransform = translate; animate = new DoubleAnimation(0, -800, TimeSpan.FromSeconds(bigmove)); animate.Completed += new EventHandler(AnimateVikingDragon0); translate.BeginAnimation(TranslateTransform.XProperty, animate); }
private void AnimateCheckButton() { DoubleAnimation translate = new DoubleAnimation(); translate.From = 0; translate.To = 68; translate.AutoReverse = false; translate.Duration = new Duration(TimeSpan.FromSeconds(0.750)); TranslateTransform tt = new TranslateTransform(); checkButton.RenderTransform = tt; tt.BeginAnimation(TranslateTransform.YProperty, translate); }
public SurfaceWindow1() { InitializeComponent(); // Add handlers for window availability events AddWindowAvailabilityHandlers(); this.SizeChanged += new SizeChangedEventHandler(SurfaceWindow1_SizeChanged); this.SizeChanged += Map.WindowSizeChanged; this.SizeChanged += nav.WindowSizeChanged; this.MouseUp += new MouseButtonEventHandler(MouseUp_Handler); _startCard = new StartCard(); _startCard.HorizontalAlignment = HorizontalAlignment.Center; _startCard.VerticalAlignment = VerticalAlignment.Center; startCan.Children.Add(_startCard); panImg.Source = new BitmapImage(new Uri(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\Data\\Startup\\panning_startup.bmp", UriKind.Absolute)); panImg.Width = 3598; panImg.Height = 1080; DoubleAnimation myAnimation = new DoubleAnimation(); myAnimation.From = 0; myAnimation.To = -1080; myAnimation.AutoReverse = true; myAnimation.RepeatBehavior = RepeatBehavior.Forever; myAnimation.Duration = new Duration(TimeSpan.FromSeconds(45)); TranslateTransform t = new TranslateTransform(); panImg.HorizontalAlignment = HorizontalAlignment.Right; panImg.Opacity = 0.2; panCan.RenderTransform = t; t.BeginAnimation(TranslateTransform.XProperty, myAnimation); nav.HandleImageSelected += Map.HandleImageSelectedEvent; filter = new FilterTimelineBox(); nav.filter = filter; map.Children.Add(filter); this.SizeChanged += SurfaceWindow1_SizeChanged; _resetTimer.Interval = TimeSpan.FromSeconds(120); //_resetTimer.Tick += new EventHandler(_resetTimer_Tick); //help.Visibility = Visibility.Visible; String[] c = Environment.GetCommandLineArgs(); if (c.Length != 1) { if (c[1].Contains("noauthoring")) { ButtonPanel.Children.Remove(exitButton); } } }
public void AnimateViewToY(double y) { var currentPosition = RenderTransform.Transform(new Point(0.0, 0.0)); var animation = new DoubleAnimation(); animation.From = currentPosition.Y; animation.To = y; animation.Duration = new Duration(TimeSpan.FromMilliseconds(m_stateChangeAnimationTimeMilliseconds)); animation.EasingFunction = new SineEase(); var transform = new TranslateTransform(currentPosition.X, currentPosition.Y); RenderTransform = transform; transform.BeginAnimation(TranslateTransform.YProperty, animation); }
private void AnimateFrsotGiantDragon0(object sender, EventArgs e) { TranslateTransform translate = new TranslateTransform(); DoubleAnimation animate; translate = new TranslateTransform(); FrostGiantDragonPup0.RenderTransform = translate; animate = new DoubleAnimation(0, -DragDistance, TimeSpan.FromSeconds(Dragmove)); animate.Completed += new EventHandler(AnimateVikingDragon1); translate.BeginAnimation(TranslateTransform.XProperty, animate); }
public CrawlTextBox() { this.InitializeComponent(); crawlLabel.UpdateLayout(); TranslateTransform offsetTransform = new TranslateTransform(); DoubleAnimation offsetXAnimation = new DoubleAnimation(1920, -(crawlLabel.ActualWidth), new Duration(TimeSpan.FromSeconds(30*(crawlLabel.ActualWidth/5000)))); offsetXAnimation.RepeatBehavior = RepeatBehavior.Forever; offsetXAnimation.BeginTime = TimeSpan.FromSeconds(0); offsetTransform.BeginAnimation(TranslateTransform.XProperty, offsetXAnimation); crawlLabel.RenderTransform = offsetTransform; }
private void Recompute() { double x1, y1, x2, y2; x1 = _original.X; y1 = _original.Y; x2 = _dest.X; y2 = _dest.Y; pf.StartPoint = new Point(x1, y1); bz.Point1 = new Point(x1 * 0.6 + x2 * 0.4, y1); bz.Point2 = new Point(x1 * 0.4 + x2 * 0.6, y2); bz.Point3 = new Point(x2, y2); // if x2 == x1 or y2 == y1 then the flow will not happen // so we can "override" those cases with slightly fake values if (x2 == x1) x2 += 0.00001; if (y2 == y1) y2 += 0.00001; flow.StartPoint = pf.StartPoint; flow.EndPoint = bz.Point3; TransformGroup rt = new TransformGroup(); rt.Children.Add(new ScaleTransform(10.0 / Math.Abs(x2 - x1), 10.0 / Math.Abs(y2 - y1))); flowOffset = new TranslateTransform(0, 0); if (x1 < x2) da = new DoubleAnimation(0.0, 1.0, new Duration(new TimeSpan(0, 0, (int)Math.Abs(x2 - x1) / 10))); else da = new DoubleAnimation(1.0, 0.0, new Duration(new TimeSpan(0, 0, (int)Math.Abs(x2 - x1) / 10))); da.RepeatBehavior = RepeatBehavior.Forever; da.IsCumulative = true; flowOffset.BeginAnimation(TranslateTransform.XProperty, da); if (y1 < y2) da = new DoubleAnimation(0.0, 1.0, new Duration(new TimeSpan(0, 0, (int)Math.Abs(y2 - y1) / 10))); else da = new DoubleAnimation(1.0, 0.0, new Duration(new TimeSpan(0, 0, (int)Math.Abs(y2 - y1) / 10))); da.RepeatBehavior = RepeatBehavior.Forever; da.IsCumulative = true; flowOffset.BeginAnimation(TranslateTransform.YProperty, da); rt.Children.Add(flowOffset); flow.RelativeTransform = rt; }
public void CrawlText(string crawltext) { crawlLabel.Content = crawltext; crawlLabel.UpdateLayout(); crawlLabel.BeginInit(); this.InitializeComponent(); TranslateTransform offsetTransform = new TranslateTransform(); //MessageBox.Show(crawlLabel.Content.ToString()); DoubleAnimation offsetXAnimation = new DoubleAnimation(1920, -(crawlLabel.ActualWidth), new Duration(TimeSpan.FromSeconds(30 * (crawlLabel.ActualWidth / 5000)))); offsetXAnimation.RepeatBehavior = RepeatBehavior.Forever; offsetXAnimation.BeginTime = TimeSpan.FromSeconds(0); offsetTransform.BeginAnimation(TranslateTransform.XProperty, offsetXAnimation); crawlLabel.RenderTransform = offsetTransform; }
/// <summary> /// animation for showing the controls /// </summary> private void showControls() { if (isAnimating == false) { DoubleAnimation anim = new DoubleAnimation() { To = 0, From = controls.ActualHeight, Duration = TimeSpan.FromMilliseconds(200), FillBehavior = FillBehavior.HoldEnd }; anim.Completed += animShow_Completed; isControlPanelVisible = true; isAnimating = true; TranslateTransform tt = new TranslateTransform(); controls.RenderTransform = tt; tt.BeginAnimation(TranslateTransform.YProperty, anim); } }
private void Button_Click(object sender, RoutedEventArgs e) { int start_time = 500; DoubleAnimation da = new DoubleAnimation(0, System.Windows.SystemParameters.PrimaryScreenWidth, TimeSpan.FromMilliseconds(start_time)); DoubleAnimation daa = new DoubleAnimation(1, 0.3, TimeSpan.FromMilliseconds(start_time)); ExponentialEase easing = new ExponentialEase(); easing.EasingMode = EasingMode.EaseIn; easing.Exponent = 5; da.EasingFunction = easing; daa.EasingFunction = easing; da.Completed += (oo, ee) => { this.Close(); }; TranslateTransform tt = new TranslateTransform(); this.RenderTransformOrigin = new Point(System.Windows.SystemParameters.PrimaryScreenWidth, 0); this.RenderTransform = tt; tt.BeginAnimation(TranslateTransform.XProperty, da); this.BeginAnimation(OpacityProperty, daa); }
public void Wipe(TransitionerSlide fromSlide, TransitionerSlide toSlide, Point origin, IZIndexController zIndexController) { if (fromSlide == null) throw new ArgumentNullException(nameof(fromSlide)); if (toSlide == null) throw new ArgumentNullException(nameof(toSlide)); if (zIndexController == null) throw new ArgumentNullException(nameof(zIndexController)); var zeroKeyTime = KeyTime.FromTimeSpan(TimeSpan.Zero); var midishKeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(200)); var endKeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(400)); //back out old slide setup var scaleTransform = new ScaleTransform(1, 1); fromSlide.RenderTransform = scaleTransform; var scaleAnimation = new DoubleAnimationUsingKeyFrames(); scaleAnimation.KeyFrames.Add(new EasingDoubleKeyFrame(1, zeroKeyTime)); scaleAnimation.KeyFrames.Add(new EasingDoubleKeyFrame(.8, endKeyTime)); scaleAnimation.Completed += (sender, args) => { fromSlide.RenderTransform = null; }; var opacityAnimation = new DoubleAnimationUsingKeyFrames(); opacityAnimation.KeyFrames.Add(new EasingDoubleKeyFrame(1, zeroKeyTime)); opacityAnimation.KeyFrames.Add(new EasingDoubleKeyFrame(0, endKeyTime)); opacityAnimation.Completed += (sender, args) => { fromSlide.BeginAnimation(UIElement.OpacityProperty, null); fromSlide.Opacity = 0; }; //slide in new slide setup var translateTransform = new TranslateTransform(0, toSlide.ActualHeight); toSlide.RenderTransform = translateTransform; var slideAnimation = new DoubleAnimationUsingKeyFrames(); slideAnimation.KeyFrames.Add(new LinearDoubleKeyFrame(toSlide.ActualHeight, zeroKeyTime)); slideAnimation.KeyFrames.Add(new EasingDoubleKeyFrame(toSlide.ActualHeight, midishKeyTime) { EasingFunction = _sineEase}); slideAnimation.KeyFrames.Add(new EasingDoubleKeyFrame(0, endKeyTime) { EasingFunction = _sineEase }); //kick off! translateTransform.BeginAnimation(TranslateTransform.YProperty, slideAnimation); scaleTransform.BeginAnimation(ScaleTransform.ScaleXProperty, scaleAnimation); scaleTransform.BeginAnimation(ScaleTransform.ScaleYProperty, scaleAnimation); fromSlide.BeginAnimation(UIElement.OpacityProperty, opacityAnimation); zIndexController.Stack(toSlide, fromSlide); }
public static void AddChildAnimate(UIElement child, Grid grid, int start_time) { AddChild(child, grid); child.Opacity = 0.0; DoubleAnimation an = new DoubleAnimation(0.0, 1.0, TimeSpan.FromMilliseconds(200)); an.BeginTime = TimeSpan.FromMilliseconds(start_time+=80); child.BeginAnimation(btnDugmeTemp.OpacityProperty, an); DoubleAnimation da = new DoubleAnimation(50, 0, new Duration(TimeSpan.FromMilliseconds(200))); da.BeginTime = TimeSpan.FromMilliseconds(start_time); da.DecelerationRatio = 0.7; TranslateTransform rt = new TranslateTransform(); child.RenderTransform = rt; rt.BeginAnimation(TranslateTransform.XProperty, da); }
public void Remove() { TranslateTransform ttup = new TranslateTransform(); TranslateTransform ttdown = new TranslateTransform(); DoubleAnimation up = new DoubleAnimation(); DoubleAnimation down = new DoubleAnimation(); //动画时间 Duration duration = new Duration(TimeSpan.FromSeconds(0.2)); //设置按钮的转换效果 buttonInOrder.RenderTransform = ttup; buttonRandom.RenderTransform = ttdown; ttup.Y = 74; ttdown.Y = -74; up.To = -74; down.To = 74; up.Duration = duration; down.Duration = duration; //开始动画 ttup.BeginAnimation(TranslateTransform.YProperty, up); ttdown.BeginAnimation(TranslateTransform.YProperty, down); }
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { Type type = typeof(double); if ((((values == null) || (values.Length != 3)) || ((values[0] == null) || (values[1] == null))) || (((values[2] == null) || !typeof(Brush).IsAssignableFrom(values[0].GetType())) || (!type.IsAssignableFrom(values[1].GetType()) || !type.IsAssignableFrom(values[2].GetType())))) { return null; } Brush brush = (Brush)values[0]; double d = (double)values[1]; double num2 = (double)values[2]; if ((((d <= 0) || double.IsInfinity(d)) || (double.IsNaN(d) || (num2 <= 0))) || (double.IsInfinity(num2) || double.IsNaN(num2))) { return null; } DrawingBrush brush2 = new DrawingBrush(); double width = d * 2; brush2.Viewport = brush2.Viewbox = new Rect(-d, 0, width, num2); brush2.ViewportUnits = brush2.ViewboxUnits = BrushMappingMode.Absolute; brush2.TileMode = TileMode.None; brush2.Stretch = Stretch.None; DrawingGroup group = new DrawingGroup(); DrawingContext context = group.Open(); context.DrawRectangle(brush, null, new Rect(-d, 0, d, num2)); TimeSpan keyTime = TimeSpan.FromSeconds(width / 200); TimeSpan span2 = TimeSpan.FromSeconds(1); DoubleAnimationUsingKeyFrames animation = new DoubleAnimationUsingKeyFrames(); animation.BeginTime = new TimeSpan?(TimeSpan.Zero); animation.Duration = new Duration(keyTime + span2); animation.RepeatBehavior = RepeatBehavior.Forever; animation.KeyFrames.Add(new LinearDoubleKeyFrame(width, keyTime)); TranslateTransform transform = new TranslateTransform(); transform.BeginAnimation(TranslateTransform.XProperty, animation); brush2.Transform = transform; context.Close(); brush2.Drawing = group; return brush2; }
private void frm_nav_Navigated(object sender, NavigationEventArgs e) { double translateTo = 0.0, translateFrom = 0.0; var currentStep = (int)App.Current.Properties[Constants.ApplicationProperties.CurrentStep]; var nextStep = (int)App.Current.Properties[Constants.ApplicationProperties.NextStep]; //switch (currentStep) //{ // case Constants.ApplicationProperties.Steps.step1: // translateTo = txb_pg1.Margin.Top - rectangle1.Margin.Top; // break; // case Constants.ApplicationProperties.Steps.step2: // translateTo = txb_pg2.Margin.Top - rectangle1.Margin.Top; // translateFrom = txb_pg1.Margin.Top; // break; // case Constants.ApplicationProperties.Steps.step3: // translateTo = txb_pg2.Margin.Top - rectangle1.Margin.Top; // translateFrom = txb_pg1.Margin.Top; // break; // default: // break; //} translateTo = nextStep; translateFrom = currentStep; App.Current.Properties["stepSlider"] = translateTo; var transform = new TranslateTransform(); Duration duration = new Duration(new TimeSpan(0, 0, 0, 2, 0)); DoubleAnimation anim = new DoubleAnimation(translateFrom, translateTo, duration); transform.BeginAnimation(TranslateTransform.YProperty, anim); rectangle1.RenderTransform = transform; }