我写了一个非常简单的新手应用程序,带有一个6面多面体(一个“盒子”),当我点击一个按钮时它会旋转180度。然后在下一次单击时再次旋转。每次轮换都会抓住另一个90MB,直到我关闭应用程序才会释放。该框在XAML中定义。 Storyboard
,DoubleAnimation
和PropertyPath
等都是在构造函数中创建的ONCE。按钮代码如下所示:
private void button_Storyboard1_Click(object sender, RoutedEventArgs e)
{
GC.Collect();
if (_bFront)
{
_myDoubleAnimation.From = 0;
_myDoubleAnimation.To = 180;
_bFront = false;
}
else
{
_myDoubleAnimation.From = 180;
_myDoubleAnimation.To = 0;
_bFront = true;
}
_myDoubleAnimation.Duration = _Duration;
Storyboard.SetTargetName(_myDoubleAnimation, "rotate_me");
Storyboard.SetTargetProperty(_myDoubleAnimation, _PropP);
_sb.Children.Add(_myDoubleAnimation);
_sb.Begin(this.viewport3D1);
}
经过几次轮换后,我失去了记忆!发生了什么事?
答案 0 :(得分:1)
这里可能完全错误,但是你不是每次点击都会将_myDoubleAnimation添加到_sb.Children,而不仅仅是更新吗?