我如何避免一个OutOfMemoryException时使用dropshadoweeffect

本文关键字:OutOfMemoryException dropshadoweeffect 一个 何避免 | 更新日期: 2023-09-27 18:06:51

当添加dropshadowweeffect时,使用ScaleTransform放大需要大量内存。内存太多!没有dropshaddowef效果,没有问题。

我不明白,为什么它会泄漏内存,我能做些什么来解决。

下面是一个简单测试程序的代码:

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;

我如何避免一个OutOfMemoryException时使用dropshadoweeffect

你应该看看这个博客:http://youpvp.com/blog/post/What-you-need-to-know-about-DropShadow-to-create-great-Silverlight-applications.aspx

你看到的大部分内存使用情况都符合预期。500x500像素画布的阴影(在您的情况下是5倍缩放)将占用>1MB内存。

这是。net 3.5还是4.0?在3.5版本中,应该避免投影效果,以避免渲染问题。

http://joshsmithonwpf.wordpress.com/2007/07/24/a-lightweight-alternative-to-dropshadowbitmapeffect/

相关文章:
  • 没有找到相关文章