2011-08-29 92 views
1

添加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; 
+0

你有多少内存? WPF和Silverlight没有声称对内存友好。 – ChaosPandion

+0

32位系统,所以...约3的东西。但是,第一WPF没有这个问题,第二:我的浏览器的内存从150k增加到超过1000k,更多只是使用DropShadowEffect ....这是不能接受的。 – Em1

+1

使用大量内存!=泄漏内存。只是说... – rtalbot

回答

相关问题