Mam aplikację WPF, która ma siatkę danych innej firmy z obramowaniem wokół niego. Użyłem DropShadowEffect
, aby umieścić cień za granicą, ale wydaje się to mieć wpływ na wydajność (nie tak bardzo jak BitmapEffect
, ale nadal zauważalne) i sprawia, że renderowanie czcionek jest niewyraźne. Czy istnieje sposób, aby jakoś zastosować efekt do granicy, ale nie jego zawartość?Jak zastosować efekt do obramowania, ale nie do jego zawartości w WPF?
Próbowałem ustawić efekt na zawartości na {x:Null}
, ale to nie pomogło.
Oto przykładowa aplikacja, którą wymyśliłem. Umieszcza cień za granicą, ale także kładzie cień za każdą linią tekstu. Chcę cienia za granicą, ale nie tekstu.
<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>