Beispiel #1
0
        private CompositionBrush CreateCrossFadeEffectBrush(Compositor compositor, CompositionBrush from, CompositionBrush to)
        {
            var crossFadeEffect = new CrossFadeEffect();

            crossFadeEffect.Name      = "Crossfade"; // Name to reference when starting the animation.
            crossFadeEffect.Source1   = new CompositionEffectSourceParameter("source1");
            crossFadeEffect.Source2   = new CompositionEffectSourceParameter("source2");
            crossFadeEffect.CrossFade = 0;

            CompositionEffectBrush crossFadeEffectBrush = compositor.CreateEffectFactory(crossFadeEffect, new List <string>()
            {
                "Crossfade.CrossFade"
            }).CreateBrush();

            crossFadeEffectBrush.Comment = "Crossfade";
            // The inputs have to be swapped here to work correctly...
            crossFadeEffectBrush.SetSourceParameter("source1", to);
            crossFadeEffectBrush.SetSourceParameter("source2", from);
            return(crossFadeEffectBrush);
        }
        private ICanvasImage CreateCrossFade()
        {
            if (!CrossFadeEffect.IsSupported)
            {
                return CreateNotSupportedMessage(requiresWin10_14393);
            }

            textLabel = requiresWin10_14393;

            var upsideDownTiger = new Transform2DEffect
            {
                Source = bitmapTiger,
                TransformMatrix = Matrix3x2.CreateScale(1, -1, bitmapTiger.Size.ToVector2() / 2)
            };

            var crossFadeEffect = new CrossFadeEffect
            {
                Source1 = bitmapTiger,
                Source2 = upsideDownTiger
            };

            // Animation changes the crossfade amount.
            animationFunction = elapsedTime =>
            {
                crossFadeEffect.CrossFade = 0.5f + (float)Math.Sin(elapsedTime * 2) / 2;
            };

            return crossFadeEffect;
        }