WPF DropShadowEffect出现在预览中但不在运行时出现

时间:2013-12-17 23:21:52

标签: wpf visual-studio

所以我在网格中实现了以下代码:

        <Grid.Effect>
        <DropShadowEffect ShadowDepth="0"
                      Color="Black"
                      Opacity="1"
                      BlurRadius="30" RenderingBias="Quality"/>
       </Grid.Effect>

我可以看到预览中出现阴影;然而,当我跑它时,没有阴影。所以我想知道我是否错过了什么。

XAML:

<Window x:Class="test.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525" Background="Transparent" WindowStyle="None" AllowsTransparency="True">
<Grid>
    <Grid.Effect>
        <DropShadowEffect ShadowDepth="0"
                  Color="Black"
                  Opacity="1"
                  BlurRadius="30" RenderingBias="Quality"/>
    </Grid.Effect>

    <Rectangle Height="350" Width="525" Fill="White" Grid.ColumnSpan="2">
    </Rectangle>
</Grid>

您应该会看到一个窗口,边框周围有阴影。然后运行它就消失了。

编辑:所以我所做的只是在矩形上添加一个边距并显示阴影。我假设窗口挡住了阴影。

1 个答案:

答案 0 :(得分:6)

像这样为你的矩形添加一个边距

<Rectangle Margin="10"  Height="350" Width="525" Fill="White" Grid.ColumnSpan="2">

它需要边距的原因是因为投影效果会绘制比矩形边界更大的轮廓。如果您不想使用矩形,只需将其应用于网格,则将边距添加到网格中。希望这会有所帮助。