我想结合模糊,饱和度和色调颜色。
我有一个混合效果,由 GaussianBlur 和 Tint 颜色组成。
_compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;
var graphicsEffect = new BlendEffect
{
Mode = BlendEffectMode.Overlay,
Background = new GaussianBlurEffect()
{
Name = "Blur",
Source = new CompositionEffectSourceParameter("Backdrop"),
BlurAmount = 10f
BorderMode = EffectBorderMode.Hard,
},
Foreground = new ColorSourceEffect()
{
Name = "Tint",
Color = Color.FromArgb(120, 255, 255, 255),
}
};
var effectFactory = _compositor.CreateEffectFactory(graphicsEffect)
_brush = effectFactory.CreateBrush();
_brush.SetSourceParameter("Backdrop", _compositor.CreateBackdropBrush());
_effectSprite = _compositor.CreateSpriteVisual();
_effectSprite.Size = new Vector2((float)this.ActualWidth, (float)this.ActualHeight)
_effectSprite.Brush = _brush;
ElementCompositionPreview.SetElementChildVisual(this, _effectSprite)
如何在此效果之前或之后添加 SaturationEffect?
我试图将它包装到另一个 BlendEffect 中并将另一个 BackdropBrush 设置为 SaturationEffect 的来源,但我只有白色背景。
我还尝试从 SaturationEffect 创建画笔并将其设置为 GaussianBlur 的来源,但出现异常“Invalid Source Brush”