我試圖實作一個網格,只有一側有陰影,其他任何一側都沒有任何陰影。我嘗試擺弄 DropShadowEffect 的方向屬性。
我嘗試過的:
<Grid Background="Transparent" Grid.Row="0" Grid.Column="1">
<Grid Background="White"/>
<Border CornerRadius="0,5,0,0" BorderBrush="White" BorderThickness="0" Background="White">
<Border.Effect>
<DropShadowEffect BlurRadius="5" Direction="355" RenderingBias="Quality" ShadowDepth="2"/>
</Border.Effect>
</Border>
</Grid>
</Grid>
這是我的代碼發生的情況:

我想實作僅在網格底部可見的投影,而在其他任何一側都沒有陰影痕跡。上面的代碼在左側留下了一條細細的灰色痕跡,這對我不起作用。
對不起,如果這是一個愚蠢的問題,我對 WPF 有點陌生。
uj5u.com熱心網友回復:
我認為 DropShadowEffect 沒有為此類應用程式內置任何功能,但是,我設法使用矩形并用線性漸變填充它來實作所需的結果。
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Opacity="0.3">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="Black" Offset="0"/>
<GradientStop Color="#00131313" Offset="1"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>

為了保持與陰影的父級相同的寬度,將它們添加到相同的網格和相同的列中,將水平和垂直對齊設定為拉伸,陰影看起來會一致。
然后我將矩形放置在陰影的位置。看起來有點笨拙,但仍然有效。
編輯: 我找到了另一個看起來更好的解決方案,使用 ClipToBounds 屬性和 BorderThickness 屬性。
<Border ClipToBounds="True" BorderBrush="White" BorderThickness="0,2,0,0">
<Border.Effect>
<DropShadowEffect ShadowDepth="2" BlurRadius="10"/>
</Border.Effect>
</Border>

使用邊框和陰影比使用矩形并調整它直到看起來自然更容易。
建議使用網格來完美定位邊界。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/337957.html
標籤:小白
