日期:2014-05-17  浏览次数:20939 次

元素逐渐变透明后还在不在?是不是就被删除了?
我想实现一个元素慢慢淡出视野消失(确切说是删除掉了)的应用,刚好msdn上有这个例子
http://msdn.microsoft.com/zh-cn/library/ms752312.aspx#storyboardwalkthrough

但是这个例子是用动画实现的,他的原理是利用透明度的变化,元素逐渐消失,但是我有个疑问就是这个元素只是变的透明了而已,还是彻底的删除掉了?我想要的是删除掉的结果,如果只是变的透明的话,那我画布上元素的个数变的多了起来,岂不是占用资源会过大了?

如果我只是想以淡入淡出的方式删除画布上的某个矩形元素的话,该怎么办?即
canvas.Children.Add(rect)//添加3个矩形
有具体删除第二个矩形的方法嘛?

------解决方案--------------------
引用:
Quote: 引用:

你在动画结束后再删除掉就好了。

Storyboard.Completed += new EventHandler(Storyboard_Completed);

 void Storyboard_Completed(object sender, EventArgs e)
 {
      你的操作;
  }

我就是不知道如何删除,我是先把元素添加到Canvas画布里,动画结束后如何删除该元素啊嘛?

你要是知道index直接:

void Storyboard_Completed(object sender, EventArgs e)
 {
      Canvas.RemoveAt(index);
  }

要么这样

Canvas.Children.Add(rect)
//开始动画
//结束动画
Storyboard.Completed += (o,e) => 
{
   Canvas.Children.Remove(rect);
}