司马相如和卓文君WinForm中的特殊窗体效果:渐变窗⼝和信息提⽰窗⼝
在WinForm中偶尔会遇到某些特殊效果:⽐如某个窗⼝刚开始的时候是完全透明的,随着时间的变化,窗体逐渐不透明,直⾄完全不透明。这是本⽂要探讨的窗体效果之⼀:渐变窗体。
还有⼀种窗体效果:有些软件在某个特定的时间会显⽰⼀个提⽰窗体,这个窗体不是直接显⽰的,⽽是慢慢从窗⼝的最下⽅向上移动,直⾄窗体完全显⽰就不再移动。当我们点击“确定”按钮之后,窗体由从屏幕上逐渐下移,直⾄完全从屏幕上完全不显⽰。这也是本⽂讨论的窗体效果之⼀:移动提⽰信息窗⼝。
(⼀)渐变窗体
每个窗体都有⼀个Opacity属性,它的值从0到1之间,表⽰窗体的透明效果,0表⽰完全透明,1表⽰完全不透明。我们可以动态设置这个值,实现窗体从完全透明到完全不透明。核⼼代码如下:
人会投胎吗
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace ThreadDemo
{
/// <summary>
/// 说明:这是⼀个渐变窗⼝,当程序运⾏的时候,窗体是完全透明的
/// 随着时间的变化,窗体逐渐变为完全部透明
/// 作者:周公
/// 原创地址:
/
押韵的口号
// </summary>
public partial class TimerForm : Form
{
private double opacity = 0;//记录当前窗体的透明度
public TimerForm()
{
InitializeComponent();
Opacity = 0;//指定窗体完全透明
}
private void timer1_Tick(object nder, EventArgs e) {
if (opacity <= 1)
{
opacity = opacity + 0.05;
Opacity = opacity;
}
Console.WriteLine("Opacity=" + Opacity);
}
}
}
/// </summary>
如何沏茶public partial class TimerForm : Form
{
private double opacity = 0;//记录当前窗体的透明度
public TimerForm()
{
InitializeComponent();
Opacity = 0;//指定窗体完全透明
}
市场调研大赛private void timer1_Tick(object nder, EventArgs e) {
if (opacity <= 1)
打开门的英语{
opacity = opacity + 0.05;
Opacity = opacity;
}
量子隐形传态Console.WriteLine("Opacity=" + Opacity);
}
}
}
(⼆)移动提⽰信息窗⼝
每个Control类都有⼀个Location属性,它是⼀个Point值,这个值表⽰控件的左上⾓的坐标值,利⽤这个坐标值,我们可以设置窗体的位置。程序核⼼代码如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using S
/// </summary> public partial class NoteForm : Form { private int screenWidth;//屏幕宽度 private int screenHeight;//屏幕⾼度 private bool finished=fal;//
是否完全显⽰提⽰窗⼝ public NoteForm() { InitializeComponent(); screenHeight = Screen.PrimaryScreen.Bounds.Height; screenWidth =
假如你不够快乐
Screen.PrimaryScreen.Bounds.Width; //设置提⽰窗⼝坐标在屏幕可显⽰区域之外 Location = new Point(screenWidth-Width, screenHeight); } private void NoteForm_Load(object nder, EventArgs e) { } private void timer1_Tick(object nder, EventArgs e) { if (!finished)//如果提⽰窗⼝没有完全显⽰ { //如果
提⽰窗⼝的纵坐标与提⽰窗⼝的⾼度之和⼤于屏幕⾼度 if (Location.Y + Height >= screenHeight) { Location = new Point(Location.X, Location.Y - 5); } }
el//如果提⽰窗⼝已经完成了显⽰,并且点击了确定按钮 { //如果提⽰窗⼝没有完全从屏幕上消失 if (Location.Y < screenHeight) { Location = new
Point(Location.X, Location.Y + 5); } } } private void btnOK_Click(object nder, EventArgs e) { //设置完成了显⽰,以便让提⽰控件移出屏幕可显⽰区域finished = true; } } }
窗体的运⾏效果效果:
<img alt="" data-cke-saved-src="p-blog.csdn/images/p_blog_csdn_net/zhoufoxcn/NoteFor
m1.JPG" src="p-blog.csdn/images/p_blog_ <img alt="" data-cke-saved-src="p-blog.csdn/images/p_blog_csdn_net/zhoufoxcn/NoteForm2.JPG" src="p-blog.csdn/images/p_blog_
说明:整个程序源代码(包括可执⾏⽂件)可从下载。
下载。