wpf中:
window 设置 Opacity=0;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
this.Timer111();
}//此处Timer 引用的是: using System.Timers;
Timer timer1 = new Timer(1000);
private void Timer111()
{
timer1.Start();
timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_Elapsed);
}
private void timer1_Elapsed(object sender, EventArgs e)
{//在这里会出现这样的错误: 调用线程无法访问此对象,因为另一个线程拥有该对象。
if (!(this.Opacity < 1))
{
timer1.Stop();
}
this.Opacity += 0.1;
}谁能帮我解决下这个问题, 该如何实现程序的淡入效果? 谢谢了
window 设置 Opacity=0;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
this.Timer111();
}//此处Timer 引用的是: using System.Timers;
Timer timer1 = new Timer(1000);
private void Timer111()
{
timer1.Start();
timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_Elapsed);
}
private void timer1_Elapsed(object sender, EventArgs e)
{//在这里会出现这样的错误: 调用线程无法访问此对象,因为另一个线程拥有该对象。
if (!(this.Opacity < 1))
{
timer1.Stop();
}
this.Opacity += 0.1;
}谁能帮我解决下这个问题, 该如何实现程序的淡入效果? 谢谢了
解决方案 »
- c/s程序之间的调用问题
- winform实现TXT文档内容的读取并存入SQL数据库 急求代码
- 没创新的人别进!
- Calendar 类 和 DateTime类能否详细介绍一下
- CompareValidator问题,点reset 时为何也触发验证
- 关于 C# 焦点 问题
- 急!!!如何取域用户信息,比如邮件地址,谢谢!
- 如何动态改变FRAME得大小、外观。java就行。
- 数据库设计问题
- 全神关注:QQ群组4411971,针对开发asp,asp.net c#,vb.net php jsp 等技术群组.我们要突破200人. 有你的加入我们更精彩.
- 页面动态生成文本框
- 关于邮件群发出现的问题各位大侠帮帮忙!!
C#实现窗体淡入淡出效果的几种方法
1.
private void Form1_Load(object sender, System.EventArgs e)
for(double d=0.01; d< 1; d+=0.02)
{
System.Threading.Thread.Sleep(1);
Application.DoEvents();
this.Opacity=d;
this.Refresh();
}
2.
private void timer1_Tick(object sender, System.EventArgs e)
{
this.Opacity = WinShow ;
WinShow += 0.1 ;
if(WinShow >=1 )
{
timer1.Dispose ();
}
}
3.
用循环或计时器,
frmForm myForm=new frmForm()
frmForm.Opacity=0;
frmForm.show();
for(int i=0;i<100;i++)
{
Application.DoEvents()
frmForm.Opacity=i/100;
}
4.
#region ******** 窗体淡入效果函数 ********
private double WinShow = 0;//用于窗口淡入效果的变量
private void FormShow(System.Windows.Forms.Form Curfrm)
{
Curfrm.Opacity = WinShow ;
WinShow += 0.01;
if(WinShow == 1)
{
Curfrm.timerShow.Stop ();
}
}
#endregion
#region ******** 窗体淡入效果函数调用示例 ********
//实现窗口的淡入效果
private void timerShow_Tick(object sender, System.EventArgs e)
{
//timerShow,这是一个timer控件名称;把timerShow.interval=100就可以了。
FormShow(this);
}
#endregion
private void Window_Loaded
(object sender, RoutedEventArgs e)
{
//淡入效果this.Opacity = 0;
DoubleAnimation OpercityAnimation =
new DoubleAnimation(0.01, 1.00,
new Duration(TimeSpan.FromSeconds(1)));
this.BeginAnimation(Window.
OpacityProperty, OpercityAnimation);}
this.BeginAnimation(Window.OpacityProperty, da);或者用Storyboard......
private void Danchu()
{
//淡入效果this.Opacity = 1;
DoubleAnimation OpercityAnimation = new DoubleAnimation(1, 0.00, new Duration(TimeSpan.FromSeconds(10)));
this.BeginAnimation(Window.OpacityProperty, OpercityAnimation); } private void btn_Close_Click(object sender, RoutedEventArgs e)
{
this.Opacity = 1;
this.Danchu();
this.Close();
}能指点下 迷津谢谢了。。
我当你 是 赞美我 呵呵 第一次 用wpf 编程, 有很多的东西不懂, 写的代码也乱七八糟的。。谢谢 指导, 我会改进的