自动不透明度改变在Windows应用程序
本文关键字:Windows 应用程序 改变 不透明度 | 更新日期: 2023-09-27 18:17:00
我试着让我的windows窗体应用程序改变不透明度从1到0(不可见的形式),然后从0不透明度到1(正常,可见的形式),当我按下按钮。
每个不透明度变化步骤都与计时器相连。它会改变不透明度(-/+0,10)在每个timer1_tick。
不透明度= 1 (100%)
现在我有了这样的内容:
public partial class Form1 : Form
{
double OpacityStep;
public Form1()
{
OpacityStep = 0.10;
InitializeComponent();
updateButton1();
updateButton2();
}
private void updateButton1()
{
if (Opacity < 1.00) button1.Enabled = true;
else
{
button1.Enabled = false;
}
}
private void updateButton2()
{
if (Opacity > 0.0) button2.Enabled = true;
else
{
button1.Focus();
button2.Enabled = false;
}
}
private void button1_Click(object sender, EventArgs e)
{
double NewOpacity = Opacity + OpacityStep;
if (NewOpacity > 1.0) Opacity = 1.0;
else Opacity = NewOpacity;
updateButton2();
updateButton1();
}
private void button2_Click(object sender, EventArgs e)
{
double NewOpacity = Opacity - OpacityStep;
if (NewOpacity < 0.0) Opacity = 0.0;
else Opacity = NewOpacity;
updateButton1();
updateButton2();
}
private void button3_Click(object sender, EventArgs e) // app start
{
this.timer1.Interval = 1000;
this.timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
button2_Click(sender, e);
}
}
这段代码使我的应用程序不可见,但如何使它回到可见(不透明度= 1)??div ?
"我试着让我的windows窗体应用程序改变不透明度从1到0(不可见的形式),然后从0不透明度到1(正常,可见的形式),当我按下按钮。"
听起来很清楚:
public partial class Form1 : Form
{
double OpacityStep = 0;
public Form1()
{
InitializeComponent();
timer1.Interval = 100;
timer1.Enabled = false;
}
private void button1_Click(object sender, EventArgs e)
{
button1.Enabled = false;
this.Opacity = 1;
OpacityStep = -0.10;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
double NewOpacity = Opacity + OpacityStep;
if (NewOpacity <= 0)
{
NewOpacity = 0;
OpacityStep = 0.10;
}
else if(NewOpacity >= 1 && OpacityStep > 0)
{
NewOpacity = 1.0;
button1.Enabled = true;
timer1.Stop();
}
this.Opacity = NewOpacity;
}
}
编辑:"如果我需要循环这个(不透明度从1到0,从0到1,在循环中),我应该在这个代码中改变什么?"
带for循环:
private void button1_Click(object sender, EventArgs e)
{
button1.Enabled = false;
// fade out:
this.Opacity = 1.0;
for (double opacity = 1.0; opacity >= 0.0; opacity = opacity - .1)
{
System.Threading.Thread.Sleep(100);
this.Opacity = opacity;
Application.DoEvents();
}
// fade in:
this.Opacity = 0.0;
for (double opacity = 0.0; opacity <= 1.0; opacity = opacity + .1)
{
System.Threading.Thread.Sleep(100);
this.Opacity = opacity;
Application.DoEvents();
}
this.Opacity = 1.0;
button1.Enabled = true;
}