Оптимизация производительности при использовании Shadow в UI
У меня есть такой пример разметки с использованием эффекта DropShadowEffect
<Window.Resources>
<Style x:Key="ShadowStyle"
TargetType="Border">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="85"
Opacity="0.9"
ShadowDepth="0" />
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Border Margin="30"
Background="Gray"
CornerRadius="35"
Style="{StaticResource ShadowStyle}">
<ScrollViewer Margin="35"
VerticalScrollBarVisibility="Auto">
<ItemsControl ItemsSource="{Binding coll}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Margin="10"
Background="Green">
<StackPanel Orientation="Horizontal">
<TextBlock Margin="10"
FontSize="20"
Text="{Binding Title}" />
<TextBlock Margin="10"
FontSize="20"
Text="{Binding Company}" />
</StackPanel>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</Border>
</Grid>
При скролле появляется сильная загрузка GPU, заметны неприятные задержки при прокрутке. Если отключить стиль ShadowStyle в элементе Border, проблема исчезает. Я предполагаю что это связано с особенностями рендеринга WPF (скорее всего при прокрутке пересчитывается тень под Item-ами), и видимо с этим ничего не сделать. И все же, существуют ли в WPF какие-либо варианты улучшить производительность сохранив при этом визуальный эффект тени?
