Пример #1
0
        private static PipelineBuilder Start(IPipelineEffect effect)
        {
            switch (effect)
            {
            case BackdropEffect backdrop when backdrop.Source == AcrylicBackgroundSource.Backdrop:
                return(PipelineBuilder.FromBackdrop());

            case BackdropEffect backdrop when backdrop.Source == AcrylicBackgroundSource.HostBackdrop:
                return(PipelineBuilder.FromHostBackdrop());

            case SolidColorEffect color:
                return(PipelineBuilder.FromColor(color.Color));

            case ImageEffect image:
                return(PipelineBuilder.FromImage(image.Uri, image.DpiMode, image.CacheMode));

            case TileEffect tile:
                return(PipelineBuilder.FromTiles(tile.Uri, tile.DpiMode, tile.CacheMode));

            case AcrylicEffect acrylic when acrylic.Source == AcrylicBackgroundSource.Backdrop:
                return(PipelineBuilder.FromBackdropAcrylic(acrylic.Tint, (float)acrylic.TintMix, (float)acrylic.BlurAmount, acrylic.TextureUri));

            case AcrylicEffect acrylic when acrylic.Source == AcrylicBackgroundSource.HostBackdrop:
                return(PipelineBuilder.FromHostBackdropAcrylic(acrylic.Tint, (float)acrylic.TintMix, acrylic.TextureUri));

            default:
                throw new ArgumentException($"Invalid initial pipeline effect: {effect.GetType()}");
            }
        }
 /// <inheritdoc/>
 protected override object ProvideValue()
 {
     return(BackgroundSource switch
     {
         AcrylicBackgroundSource.Backdrop => PipelineBuilder.FromBackdrop(),
         AcrylicBackgroundSource.HostBackdrop => PipelineBuilder.FromHostBackdrop(),
         _ => throw new ArgumentException($"Invalid source for backdrop effect: {BackgroundSource}")
     });
        public override PipelineBuilder AppendToBuilder(PipelineBuilder builder)
        {
            PipelineBuilder inputBuilder = Source ?? PipelineBuilder.FromBackdrop();

            foreach (IPipelineEffect effect in Effects)
            {
                inputBuilder = effect.AppendToBuilder(inputBuilder);
            }

            return(builder.Blend(inputBuilder, (BlendEffectMode)Mode, Placement));
        }
Пример #4
0
        /// <inheritdoc/>
        protected override PipelineBuilder OnBrushRequested()
        {
            PipelineBuilder builder = Source ?? PipelineBuilder.FromBackdrop();

            foreach (IPipelineEffect effect in Effects)
            {
                builder = effect.AppendToPipeline(builder);
            }

            return(builder);
        }
Пример #5
0
 /// <inheritdoc/>
 protected override PipelineBuilder OnBrushRequested()
 {
     return(PipelineBuilder.FromBackdrop().Invert());
 }