Ombre portée WPF
Actuellement, je fais quelque chose dans WPF qui a une bordure qui contient une grille et d'autres contrôles. Le problème auquel je suis confronté est que chaque fois que je mets la frontière.Effet propriété à un effet d'ombre portée chaque contrôle contenu dans la bordure a maintenant une ombre portée. Y a-t-il un moyen de définir l'ombre juste à la frontière et pas tous les contrôles contenus dans la frontière?
Voici un petit exemple de mon code:
<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 réponses
Deux choix:
Option 1: Ajoutez un élément de bordure avec l'effet sur celui-ci en tant que frère de l'arborescence des éléments de bordure / rectangle que vous avez. Quelque chose comme ceci:
<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>
Option 2: Placez le rectangle comme un frère de l'élément border comme ceci:
<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>
REMARQUE: Vous devrez modifier la mise en page de la deuxième solution pour aligner le rectangle où vous le souhaitez