源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C#实现winform渐变效果的方法

  • 时间:2021-11-25 04:35 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#实现winform渐变效果的方法
本文实例实现一个启动画面,采用了显示Aform,过一段时间,隐藏这个Aform,showdialog下一个Bform,closeAForm这个方法来做了,不知道大家有没有更好的办法。 设定程序从Aform启动:
[u]复制代码[/u] 代码如下:
static void Main()  {    Application.EnableVisualStyles();    Application.SetCompatibleTextRenderingDefault(false);    Application.Run(new Aform());  }
AForm中定义如下timer: StartWindowShowTime    HideWindowStart    HideWindowSpeed   ShowWindowStart 定义了他们的属性: StartWindowShowTime(显示Aform的时间长度) Enabled=True Interval=5000 (100=1秒) HideWindowStart (开始隐藏Aform的过程) Enabled=True Interval=4500 HideWindowSpeed (隐藏Aform的渐变间隔) Enabled=False Interval=10 ShowWindowStart  (显示AForm的渐变间隔) Enabled=True Interval=10 下面开始定义这些timer的Tick 在Events里面可以直接填写,timer就这一个,也可以后台写,不过我觉得在这里填写比较方便,而且可以自动生成方法的声明,不用找了。偷懒一下。 StartWindowShowTime Tick:ShowMainwindow HideWindowStart  Tick:HideWindow HideWindowSpeed  Tick:HideWindowSpeedStart ShowWindowStart Tick:ShowWindow 好了,到这里我要说Windows Form 实现透明效果,渐变效果,淡入淡出效果的实现最重要一员了,那就是Form属性里的Opacity,用的就是这个。我考证过,只有2000以上的系统支持这个属性。 我们先将Aform的Opacity设置成0,好了开始写Aform的代码
[u]复制代码[/u] 代码如下:
public partial class Aform: Form  {         public Form()         {             InitializeComponent();          }           private void Start_Load(object sender, EventArgs e)         {             StartWindowShowTime.Start();             HideWindowStart.Start();         }           private void ShowMainwindow(object sender, EventArgs e)         {             Bform showmainwindows = new Bform();                         this.Hide();             StartWindowShowTime.Stop();             HideWindowStart.Stop();             HideWindowSpeed.Stop();             showmainwindows.ShowDialog();             this.Close();         }           private void HideWindow(object sender, EventArgs e)         {             HideWindowSpeed.Start();         }           private void HideWindowSpeedStart(object sender, EventArgs e)         {             this.Opacity = this.Opacity - 0.02;         }           private void ShowWindow(object sender, EventArgs e)         {             if (this.Opacity == 1)             {                 ShowWindowStart.Stop();             }             else             {                 this.Opacity = this.Opacity + 0.02;             }         }  }
好了,这个时候大家运行看看,可以看到有淡入淡出效果。 我本来把Opacity每次更改的数值设置成了0.1,可是发现如果那样的话淡入淡出不是很润,所以缩小了数值和间隔时间。这样看起来就润多了。自我感觉不错。 如果大家的程序只需要透明,那么只用设置Opacity这个就可以了。 渐变和淡入淡出照猫画虎用timer和Opacity这个配合一下,就可以做出来了。 希望本文所述对大家的C#程序设计有所帮助
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部