private void ApplyTransitionEffect() { TransitionEffect[] effectGroup = transitionEffects[this.rand.Next(transitionEffects.Length)]; TransitionEffect effect = effectGroup[this.rand.Next(effectGroup.Length)]; if (_useOrder) { effectGroup = transitionEffectsSingle[_nextEffect % transitionEffectsSingle.Length]; effect = effectGroup[0]; if (++_usedTimes == 2) { _usedTimes = 0; _nextEffect++; } this.effectName.Text = ExtractName(effect); if (_nextEffect == transitionEffectsSingle.Length) { _useOrder = false; this.effectName.Text = "mixed effects, random"; } } RandomizedTransitionEffect randEffect = effect as RandomizedTransitionEffect; if (randEffect != null) { randEffect.RandomSeed = this.rand.NextDouble(); } ImageBrush ib = new ImageBrush(); ib.ImageSource = this.oldChild.Source; effect.OldImage = ib; Storyboard sb = TransitionHelper.CreateTransition(effect, this.currentChild, TimeSpan.FromSeconds(1), 0, 1, ib); sb.Completed += new EventHandler(this.TransitionCompleted); sb.Begin(); }
private void OnToggleTransitionsClick(object sender, RoutedEventArgs e) { if (!transition.IsRunning) { WriteableBitmap current = new WriteableBitmap((int)this.EffectsPlaceHolder.ActualWidth, (int)this.EffectsPlaceHolder.ActualHeight, PixelFormats.Bgr32); current.Render(this.EffectsPlaceHolder, new MatrixTransform()); ImageBrush currentBrush = new ImageBrush(); currentBrush.ImageSource = current; BloodTransitionEffect bloodEffect = new BloodTransitionEffect(); Storyboard sb = TransitionHelper.CreateTransition (bloodEffect, this.TransitionsPlaceHolder, TimeSpan.FromSeconds(1), 0, 1, currentBrush); sb.Completed += new EventHandler(sb_Completed); this.TransitionsPlaceHolder.Visibility = Visibility.Visible; sb.Begin(); this.EffectsPlaceHolder.Visibility = Visibility.Collapsed; btnStop.Content = "Stop Transitions"; } else { transition.StopTransitions(); WriteableBitmap current = new WriteableBitmap((int)this.TransitionsPlaceHolder.ActualWidth, (int)this.TransitionsPlaceHolder.ActualHeight, PixelFormats.Bgr32); current.Render(this.TransitionsPlaceHolder, new MatrixTransform()); ImageBrush currentBrush = new ImageBrush(); currentBrush.ImageSource = current; RadialWiggleTransitionEffect bloodEffect = new RadialWiggleTransitionEffect(); Storyboard sb = TransitionHelper.CreateTransition (bloodEffect, this.EffectsPlaceHolder, TimeSpan.FromSeconds(1), 0, 1, currentBrush); //sb.Completed += new EventHandler(sb_Completed); this.EffectsPlaceHolder.Visibility = Visibility.Visible; sb.Begin(); this.TransitionsPlaceHolder.Visibility = Visibility.Collapsed; btnStop.Content = "Start Transition"; } }