我知道我想做的事情可能很简单而且很明显,但我无法解决。我有一个包含两行的网格,顶行有一个填充该行的边框元素(固定高度为 30)。第二行(固定高度为 100)当前包含一个带有白色背景的空 DockPanel(这将包含用于动态控件的 ContentControl)。
我在第一行的边框上添加了阴影效果,方向为 270 以将阴影转换到边框下方。它几乎看不见,这并不奇怪,因为没有足够的空间容纳阴影。我想要的是阴影从行中溢出并与下行中的 DockPanel 重叠。
我的实现方式是让包含的网格也具有白色背景,然后向边框元素添加底部边距以容纳阴影。虽然这看起来不错,但这并不是我真正想要实现的目标。
抱歉没有代码示例,我不得不离开工作,但这仍然困扰着我。
提前致谢。
保罗
最佳答案
将 DockPanel 放在 Border 之前,以便 Border 在 z 顺序中更高
这行得通
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<DockPanel Grid.Row="1" Background="White" />
<Border Background="PaleGreen" BorderBrush="DarkGreen" BorderThickness="5">
<Border.Effect>
<DropShadowEffect/>
</Border.Effect>
</Border>
</Grid>
但这里停靠面板重叠并遮盖了阴影
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border Background="PaleGreen" BorderBrush="DarkGreen" BorderThickness="5">
<Border.Effect>
<DropShadowEffect/>
</Border.Effect>
</Border>
<DockPanel Grid.Row="1" Background="White" />
</Grid>
关于c# - 重叠投影效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9487716/