在VisualBrush中将图像和纯色设置为背景

时间:2014-07-23 14:09:03

标签: image xaml background opacity

这是我的代码:

<Style x:Key="BackgroundStyle" TargetType="{x:Type Window}">
        <Setter Property="Background">
            <Setter.Value>
                <VisualBrush Viewbox="0, 0,1280,1024" ViewboxUnits="Absolute" >
                    <VisualBrush.Visual>
                        <Image Source="Images\myImage.png">
                                <Image.Effect>
                                    <BlurEffect Radius="20"/>
                                </Image.Effect>
                            </Image>
                    </VisualBrush.Visual>
                </VisualBrush>
            </Setter.Value>
        </Setter>
    </Style>

我希望具有此样式的窗口将myImage.png图像作为背景,这将是模糊的,在该图像上应该有一层纯白色,其不透明度为0.8,代码为I如上所述,图像设置为背景,模糊,但我不知道如何在图像上设置白色。

看起来应该是这样的:

enter image description here

1 个答案:

答案 0 :(得分:2)

只需将具有适当不透明度的白色矩形添加到VisualBrush的Visual:

<VisualBrush Viewbox="0,0,1280,1024" ViewboxUnits="Absolute" >
    <VisualBrush.Visual>
        <Grid Width="1280" Height="1024">
            <Image Source="Images\myImage.png">
                <Image.Effect>
                    <BlurEffect Radius="20"/>
                </Image.Effect>
            </Image>
            <Rectangle Fill="White" Opacity="0.8"/>
        </Grid>
    </VisualBrush.Visual>
</VisualBrush>

通过设置网格的ClipToBounds属性,您还可以摆脱Viewbox设置:

<VisualBrush>
    <VisualBrush.Visual>
        <Grid Width="1280" Height="1024" ClipToBounds="True">
            <Image Source="Images\myImage.png">
                <Image.Effect>
                    <BlurEffect Radius="20"/>
                </Image.Effect>
            </Image>
            <Rectangle Fill="White" Opacity="0.8"/>
        </Grid>
    </VisualBrush.Visual>
</VisualBrush>