添加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