J'ai une application WPF qui a une grille de données tierce avec une bordure autour. J'ai utilisé le DropShadowEffect
pour mettre une ombre derrière la bordure, mais cela semble affecter légèrement les performances (pas autant qu'un BitmapEffect
, mais tout de même perceptible) et rend le rendu de police flou. Y at-il un moyen d'appliquer l'effet à la frontière, mais pas son contenu?Comment appliquer un effet à une bordure mais pas à son contenu dans WPF?
J'ai essayé de régler l'effet sur le contenu à {x:Null}
, mais cela n'a pas aidé.
Voici un exemple d'application que j'ai trouvé. Il place une ombre derrière la bordure, mais il place également une ombre derrière chaque ligne de texte. Je veux l'ombre derrière la frontière, mais pas le texte.
<Window x:Class="WpfEffectTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Border BorderBrush="Black" BorderThickness="10" CornerRadius="5" Margin="25">
<Border.Effect>
<DropShadowEffect BlurRadius="10" ShadowDepth="5" />
</Border.Effect>
<StackPanel>
<TextBlock>This is some text</TextBlock>
<TextBlock>This is some text</TextBlock>
<TextBlock>This is some text</TextBlock>
<TextBlock>This is some text</TextBlock>
<TextBlock>This is some text</TextBlock>
<TextBlock>This is some text</TextBlock>
</StackPanel>
</Border>
</Grid>
</Window>