WPF 中的模糊背景

Blur background in WPF

我正在尝试在 WPF 中创建模糊效果,但我想模糊位于控件后面的内容(例如 Grid),我不打算模糊 Grid 的内容。

我想做类似这张图片的东西。

<Rectangle>  
    <Rectangle.Effect>  
        <BlurEffect Radius="{DynamicResource BlurRadius}"/>  
    </Rectangle.Effect>  
    <Rectangle.Fill>  
        <VisualBrush  
ViewboxUnits="Absolute"  
Viewbox="{Binding RenderTransform.Children[3],  
        Converter={StaticResource TranslateTransformToRectViewboxVisualBrushConverter},  
        RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}},  
        UpdateSourceTrigger=PropertyChanged}"  
        AlignmentX="Left" AlignmentY="Top"  
    Visual="{Binding ElementName=BackgroundContainer}" Stretch="None">  
            <VisualBrush.Transform>  
                <TranslateTransform X="0" />  
            </VisualBrush.Transform>  
        </VisualBrush>  
    </Rectangle.Fill>  
</Rectangle>  

如果您正在寻找这样的东西:

答案是使用 BitmapEffect :

<Image Source="http://www.pingminghealth.com/wp-content/uploads/2010/12/cherries.jpg" Stretch="UniformToFill">
    <Image.BitmapEffect>
        <BlurBitmapEffect Radius="20" />
    </Image.BitmapEffect>
</Image>

您可以在 msdn 上找到有关它的教程:How to Apply a Blur Effect to a Visual

以防万一,有人仍在寻找 2018 年的解决方案,这样的事情对我有用:BlurryControls.BlurryUserControl.cs