示例#1
0
        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();
        }
示例#2
0
        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";
            }
        }