use*_*237 10 wpf visual-studio
所以我在网格中实现了以下代码:
<Grid.Effect>
<DropShadowEffect ShadowDepth="0"
Color="Black"
Opacity="1"
BlurRadius="30" RenderingBias="Quality"/>
</Grid.Effect>
Run Code Online (Sandbox Code Playgroud)
我可以看到预览中出现阴影; 然而,当我跑它时,没有阴影.所以我想知道我是否错过了什么.
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>
Run Code Online (Sandbox Code Playgroud)
您应该看到一个窗口,边框周围有阴影.然后运行它,它消失了.
编辑:所以我所做的只是在矩形上添加一个边距,然后出现阴影.我假设窗口挡住了阴影.
像这样在矩形中添加边距
<Rectangle Margin="10" Height="350" Width="525" Fill="White" Grid.ColumnSpan="2">
Run Code Online (Sandbox Code Playgroud)
它需要边距的原因是因为投影效果绘制的轮廓大于矩形边界的轮廓.如果您不想使用矩形,只需将其应用于网格,则将边距添加到网格中.希望这可以帮助.