WPF窗口阴影效果

Posted

技术标签:

【中文标题】WPF窗口阴影效果【英文标题】:WPF window shadow effect 【发布时间】:2012-11-02 06:22:58 【问题描述】:

我是 WPF 技术的新手。我在 WPF 中有以下窗口声明:

<Window x:Class="CustomWindows.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="480" Width="640" ScrollViewer.VerticalScrollBarVisibility="Disabled" WindowStyle="None" AllowsTransparency="True">
    <Window.Effect>
        <DropShadowEffect BlurRadius="15" Direction="-90" RenderingBias="Quality" ShadowDepth="2"/>
    </Window.Effect>
    <Grid>

    </Grid>
</Window>

但是当我运行它时,阴影没有出现。我该怎么办,或者错误在哪里?

【问题讨论】:

【参考方案1】:

DropShadowEffect 不能应用于Window。相反,如果要覆盖默认窗口外观,则必须将效果应用于窗口中包含的其他一些元素:

<Window x:Class="WpfApplication2.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" WindowStyle="None"
        AllowsTransparency="True" Background="Transparent">

    <Grid Margin="20" Background="Red">
        <Grid.Effect>
            <DropShadowEffect BlurRadius="15" Direction="-90"
                              RenderingBias="Quality" ShadowDepth="2"/>
        </Grid.Effect>
        ...
      
    </Grid>
</Window>

【讨论】:

非常感谢!非常有用的例子。 @HighCore,谢谢,这对我很有帮助,节省了我的时间 :) 我在窗口上使用 DropShadowEffect 已经有一段时间了。也许这个答案现在已经过时了。 当我只希望窗口有效果时,这似乎给所有控件一个阴影效果。这篇博客文章帮助了我。 yuezhizizhang.github.io/wpf/2017/09/27/…

以上是关于WPF窗口阴影效果的主要内容,如果未能解决你的问题,请参考以下文章

WPF window 子窗口反馈效果(抖动/阴影渐变)

WPF窗口阴影

WPF阴影效果(DropShadowEffect)

WPF阴影效果(DropShadowEffect)(转载)

WPF 添加阴影效果

WPF 实现阴影效果