元素逐渐变透明后还在不在?是不是就被删除了?

fp2001 2013-06-27 04:13:35
我想实现一个元素慢慢淡出视野消失(确切说是删除掉了)的应用,刚好msdn上有这个例子
http://msdn.microsoft.com/zh-cn/library/ms752312.aspx#storyboardwalkthrough

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

如果我只是想以淡入淡出的方式删除画布上的某个矩形元素的话,该怎么办?即
canvas.Children.Add(rect)//添加3个矩形
有具体删除第二个矩形的方法嘛?
...全文
91 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ariesget 2013-06-27
  • 打赏
  • 举报
回复
引用 7 楼 fp2001 的回复:
[quote=引用 4 楼 ariesget 的回复:] 你在动画结束后再删除掉就好了。

Storyboard.Completed += new EventHandler(Storyboard_Completed);

 void Storyboard_Completed(object sender, EventArgs e)
 {
      你的操作;
  }
我就是不知道如何删除,我是先把元素添加到Canvas画布里,动画结束后如何删除该元素啊嘛?[/quote] 你要是知道index直接:

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

Canvas.Children.Add(rect)
//开始动画
//结束动画
Storyboard.Completed += (o,e) => 
{
   Canvas.Children.Remove(rect);
}
fp2001 2013-06-27
  • 打赏
  • 举报
回复
引用 5 楼 kimizhou_blog 的回复:
不行的,全透明,哪怕透明度是0,一样可以被操作到的,可以在 代码里加上一句,如果透明度变成0了,就设置该控件不显示。 this.button1.Visibility = System.Windows.Visibility.Hidden;
这个只是不显示吧,但是空间还是会在的吧,我担心对了会占资源
fp2001 2013-06-27
  • 打赏
  • 举报
回复
引用 4 楼 ariesget 的回复:
你在动画结束后再删除掉就好了。

Storyboard.Completed += new EventHandler(Storyboard_Completed);

 void Storyboard_Completed(object sender, EventArgs e)
 {
      你的操作;
  }
我就是不知道如何删除,我是先把元素添加到Canvas画布里,动画结束后如何删除该元素啊嘛?
fp2001 2013-06-27
  • 打赏
  • 举报
回复
引用 2 楼 WM_JAWIN 的回复:
当透明度达到一定时(比如100%),就把他删除
问题是如何删除呢? Canvas.Children.Add(rect) //开始动画 //结束动画 画布可以精确定位到删除那个元素嘛?
  • 打赏
  • 举报
回复
不行的,全透明,哪怕透明度是0,一样可以被操作到的,可以在 代码里加上一句,如果透明度变成0了,就设置该控件不显示。 this.button1.Visibility = System.Windows.Visibility.Hidden;
ariesget 2013-06-27
  • 打赏
  • 举报
回复
你在动画结束后再删除掉就好了。

Storyboard.Completed += new EventHandler(Storyboard_Completed);

 void Storyboard_Completed(object sender, EventArgs e)
 {
      你的操作;
  }
effun 2013-06-27
  • 打赏
  • 举报
回复
如果一个文本文件里都是空格,你觉得它占不占磁盘空间呢?
WM_JAWIN 2013-06-27
  • 打赏
  • 举报
回复
当透明度达到一定时(比如100%),就把他删除
fp2001 2013-06-27
  • 打赏
  • 举报
回复
在线等,有人知道嘛

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧