每当我设置 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/