Winform 下,控制窗口的渐变效果--淡入和淡出
其实这是小强写的第二篇。觉得不好的欢迎拍砖。
首先我们需要设置窗口的基本属性:
1,设置当前窗口的为无边框的:
this.FormBorderStyle = FormBorderStyle.None;
2,加一个timer控件,用于计算当前的form的渐入频率等。
System.Windows.Forms.Timer t = new System.Windows.Forms.Timer();
好了,基本设置就说这些了,
首先,定义两个变量,用于判断当前的的状态(淡入或淡出):
bool formIn = true;
bool formOut = false;
然后在构造函数或者当前form的Lode的事件中定义timer控件的基本属性。如下
t.Interval = 100;
t.Tick += new EventHandler(t_Tick);
t.Start();
timer的tick事件
void t_Tick(object sender, EventArgs e)
{
if (formIn)//淡入
{
//当前窗口的不透明程度为1,也就拥有透明的时候
//直到不透明后,设置淡出的状态
if (this.Opacity < 1.0)
{
this.Opacity += 0.02;
}
else
{
formIn = false;
formOut = true;
}
}
else if (formOut) //淡出
{
if (this.Opacity > 0)
{
this.Opacity -= 0.02;
}
else
{
formOut = false;
}
}
if (!(formIn || formOut))//但根据状态判断之后,停止timer控件
{
t.Stop();
}
}
咱不会组织一些好的语言表达方式。不好勿怪!板砖!你们的鼓励是我学习的动力!