添加DropShadowEffect时,使用ScaleTransform放大需要大量内存。内存太多!没有DropShaddowEffect,没有问题。如何在使用DropShadowEffect时避免OutOfMemoryException?
我不明白,为什么它泄漏内存,我可以做些什么来解决。
下面是一个简单的测试程序的代码:
XAML
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="20"/>
</Grid.RowDefinitions>
<Canvas x:Name="canvas" Height="100" Width="100"
Background="Beige" Grid.Row="0">
<Canvas.RenderTransform>
<ScaleTransform ScaleX="{Binding ElementName=slide, Path=Value}"
ScaleY="{Binding ElementName=slide, Path=Value}" />
</Canvas.RenderTransform>
</Canvas>
<Grid Grid.Row="1">
<Slider x:Name="slide" Minimum="1" Maximum="200"/>
</Grid>
</Grid>
代码隐藏:
var dropShadowEffect = new DropShadowEffect();
canvas.Effect = dropShadowEffect;
你有多少内存? WPF和Silverlight没有声称对内存友好。 – ChaosPandion
32位系统,所以...约3的东西。但是,第一WPF没有这个问题,第二:我的浏览器的内存从150k增加到超过1000k,更多只是使用DropShadowEffect ....这是不能接受的。 – Em1
使用大量内存!=泄漏内存。只是说... – rtalbot