向 WPF 窗体添加阴影,边框厚度 = 0



我有一个WPF无边框窗口,阴影设置为如下所示的网格:

<Window x:Class="Wpf.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" BorderThickness="0">
<Grid>
<Grid.Effect>
<DropShadowEffect BlurRadius="15" Direction="-90" RenderingBias="Quality" ShadowDepth="2"/>
</Grid.Effect>
</Grid>
</Window>

但是,当边框厚度设置为 0 时,阴影不会显示。当我增加这个值时,阴影会出现,但是当窗口使用 DragMove(( 移动到屏幕边缘时,会留下一个间隙(大概是边框厚度的宽度(。

因此,如何在边框厚度设置为 0 的窗口周围添加阴影?提前谢谢。

<Window x:Class="WpfApp7.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp7"
mc:Ignorable="d" WindowStyle="None" 
AllowsTransparency="True" Background="Transparent" BorderThickness="0"
Title="MainWindow" Height="450" Width="800">
<Grid Margin="10">
<Grid.Background>
<SolidColorBrush Color="Green" Opacity="1"/>
</Grid.Background>
<Grid.Effect>
<DropShadowEffect Color="Black"  BlurRadius="15" Direction="-90" 
RenderingBias="Quality" ShadowDepth="2"/>
</Grid.Effect>
</Grid>

:)只是向网格添加边距。它需要空间来显示阴影。

最新更新