c# - 重叠投影效果

标签 c# .net wpf

我知道我想做的事情可能很简单而且很明显,但我无法解决。我有一个包含两行的网格,顶行有一个填充该行的边框元素(固定高度为 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/

相关文章:

c# - 如何定义连接字符串以在当前文件夹中创建本地数据库?

wpf - 带有自动化/编码 UI 测试的第三方 WPF 套件

c# - 如何保持动态大小的控件对齐?

c++ - 从 QT 中的主窗口发出信号

c# - 在此 P/Invoke 用例中正确使用 SafeHandles

c# - 特定属性的 SequenceEqual

c# - Epplus 获取正确的单元格背景 rgb 颜色

c# - xsi :schemaLocation 出现问题

c# - 组合控件名称

c# - 读取新闻文章实际内容并忽略页面上的 "noise"的算法?