gpt4 book ai didi

wpf - 如何在 WPF 的特定一侧添加投影?

转载 作者:行者123 更新时间:2023-12-05 03:36:11 25 4
gpt4 key购买 nike

我正在尝试实现一个网格,只有一侧有阴影,而另一侧没有任何阴影痕迹。我尝试摆弄 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>

我的代码是这样的: Slight gray trail on the left side

我想实现只在网格底部可见的阴影,而在其他任何一侧都没有阴影痕迹。上面的代码在左侧留下了一条灰色的细线,这对我来说不起作用。

抱歉,如果这是一个愚蠢的问题,我是 WPF 的新手。

最佳答案

我认为 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>

Rectangle

To maintain the same width as the parent of the shadow, add them to the same grid and the same column, set the horizontal and vertical alignment to stretch and the shadow will look consistent.

然后我将矩形放置在阴影的位置。看起来有点古怪,但仍然有效。

编辑:我找到了另一个似乎更好的解决方案,使用 ClipToBounds 属性和 BorderThickness 属性。

<Border ClipToBounds="True" BorderBrush="White" BorderThickness="0,2,0,0">
<Border.Effect>
<DropShadowEffect ShadowDepth="2" BlurRadius="10"/>
</Border.Effect>
</Border>

Border

使用边框和阴影比使用矩形并调整它直到看起来自然更容易。

Usage of grids is advised to position the border perfectly.

关于wpf - 如何在 WPF 的特定一侧添加投影?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69694980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com