Wpf 窗口背景图像的模糊效果

Wpf 窗口背景图像的模糊效果,wpf,xaml,background,blur,effects,Wpf,Xaml,Background,Blur,Effects,我有一个以图像为背景的窗口。在那个窗口上,我还有按钮和其他控件 这是我对该窗口的风格: <Style x:Key="MyWindow" TargetType="{x:Type Window}"> <Setter Property="Background"> <Setter.Value> <ImageBrush ImageSource="Images\myImage.png" />

我有一个以图像为背景的窗口。在那个窗口上,我还有按钮和其他控件

这是我对该窗口的风格:

<Style x:Key="MyWindow" TargetType="{x:Type Window}">
        <Setter Property="Background">
            <Setter.Value>
                <ImageBrush ImageSource="Images\myImage.png" />
            </Setter.Value>
        </Setter>
        <Setter Property="Effect">
            <Setter.Value>
                <BlurEffect Radius="20" />
            </Setter.Value>
        </Setter>
    </Style>


问题是模糊效果应用于整个窗口,而不仅仅是背景图像。所以,我的按钮也模糊了,这不是我想要的。我只希望图像背景模糊,而不是按钮。如何才能做到这一点?

与其使用ImageBrush作为窗口的背景,不如将
图像
控件作为第一个(最低)元素添加到窗口的顶级容器中,并在其中设置效果:

<Window ...>
    <Grid>
        <Image Source="Images\myImage.png" Stretch="Fill">
            <Image.Effect>
                <BlurEffect Radius="20"/>
            </Image.Effect>
        </Image>

        <!-- other UI elements -->

    </Grid>
</Window>
为了裁剪模糊背景笔刷的边界,可以调整
视图框
(默认情况下以相对单位给出),如下所示:


这是可行的,但它在模糊图像周围添加了约5毫米的黑色边框,并使图像缩小5毫米,这样就有了边框的空间。我怎么才能删除边界?我不知道边界从哪里来。它肯定在您的应用程序中的某个地方。你尝试了哪种方法?第二种,用视觉画笔。好的,那似乎是模糊区域的外部部分,增加了画笔的总尺寸。我会设法解决的。也许另一种方法更简单,窗口的大小是1024x1280。已经修好了。因此,背景图像的大小是相同的。
<Style TargetType="Window">
    <Setter Property="Background">
        <Setter.Value>
            <VisualBrush>
                <VisualBrush.Visual>
                    <Image Source="Images\myImage.png">
                        <Image.Effect>
                            <BlurEffect Radius="20"/>
                        </Image.Effect>
                    </Image>
                </VisualBrush.Visual>
            </VisualBrush>
        </Setter.Value>
    </Setter>
    ...
</Style>
<VisualBrush Viewbox="0.05,0.05,0.9,0.9">
<VisualBrush Viewbox="0,0,1024,1280" ViewboxUnits="Absolute">