WPF 投影

标签 wpf dropshadow

每当我设置 Border.Effect属性的投影效果 控件中包含的每个控件都有一个投影。

有没有办法将阴影设置到边框而不是边框​​中包含的每个控件?

这是我的代码的一个简短示例:

<Grid>
 <Border Margin="68,67,60,67" BorderBrush="Black" BorderThickness="1" CornerRadius="10">
  <Border.Effect>
   <DropShadowEffect/>
  </Border.Effect>
  <Rectangle Fill="White" Stroke="Black" Margin="37,89,118,98" />
 </Border>
</Grid>

最佳答案

两种选择:

选项 1:添加一个对其产生影响的边框元素作为您拥有的边框/矩形元素树的同级。像这样的东西:

<Grid>
    <Border Margin="68,67,60,67"
            BorderBrush="Black"
            BorderThickness="1"
            CornerRadius="10">
        <Border.Effect>
            <DropShadowEffect />
        </Border.Effect>
    </Border>
    <Border Margin="68,67,60,67"
            BorderBrush="Black"
            BorderThickness="1"
            CornerRadius="10">

        <Rectangle Fill="White"
                   Stroke="Black"
                   Margin="37,89,118,98">
        </Rectangle>
    </Border>

</Grid>

选项 2:将矩形作为边框元素的同级元素,如下所示:
   <Grid>
    <Border Margin="68,67,60,67"
            BorderBrush="Black"
            BorderThickness="1"
            CornerRadius="10">
        <Border.Effect>
            <DropShadowEffect />
        </Border.Effect>
    </Border>
    <Rectangle Fill="White"
               Stroke="Black"
               Margin="37,89,118,98">
    </Rectangle>

</Grid>

注意:您必须调整第二个解决方案的布局,使矩形排列在您想要的位置

关于WPF 投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2831062/

相关文章:

.net - KeyBinding 两个命令(一个在 VM 中,一个在 View 中)到一个键

wpf - 解决方法在WPF中震荡工具栏中的菜单样式

带有插图的 png 上的 CSS3 "drop-shadow"

c# - 在无边界 WinForm 上投影

listview - Flutter - 容器 BoxShadow 在 ListView 中滚动时消失

ios - 如何只为右侧添加阴影?

c# - 在另一个类 MVVM 中调用 RelayCommand

c# - System.Windows.MessageBox 与 System.Windows.Forms.MessageBox

wpf - 日期选择器验证 WPF

html - 我的代码不起作用。如何在剪切的 div 上添加前后元素?