比较经典的窗体效果

 渐显的窗体

private   void  Form1_Load( object  sender, System.EventArgs e)
        
{
            
this.timer1.Enabled=true;
            
this.Opacity=0;
        }


        
private   void  timer1_Tick( object  sender, System.EventArgs e)
        
{
            
if(this.Opacity<1)
            
{
                
this.Opacity=this.Opacity+0.05;
            }

            
else
            
{
                
this.timer1.Enabled=false;
            }

        }

这个实在没有什么新奇的,改透明度而已.

渐变的窗口背景

using  System.Drawing.Drawing2D; 

private   void  Form1_Paint( object  sender, System.Windows.Forms.PaintEventArgs e)
        
{
            Graphics g
=e.Graphics;
            Color FColor
=Color.Blue;
            Color TColor
=Color.Yellow;
            Brush b 
=new LinearGradientBrush(this.ClientRectangle, FColor, TColor, LinearGradientMode.ForwardDiagonal);
            g.FillRectangle(b,
this.ClientRectangle);
        }


        
private   void  Form1_Resize( object  sender, System.EventArgs e)
        
{
            
this.Invalidate();
        }

一般般,没有什么新意.

窗体总在最顶

this .TopMost  =   true ;

一些朋友老问,所以贴出来.

后面的是我个人比较喜欢用的效果:

多边型窗体

using  System.Runtime.InteropServices;          // 用API的都知道

[DllImport(
" gdi32 " )]
        
private   static   extern  IntPtr CreatePolygonRgn(Point[] lpPoint, int  nCount, int  nPolyFillMode);
        [DllImport(
" user32 " )]
        
private   static   extern  IntPtr SetWindowRgn(IntPtr hWnd,IntPtr hRgn, bool  bRedraw);
                                                                                                                                            
const   int  WINDING  =   2 ;
        
private   void  Form1_Load( object  sender, System.EventArgs e)
        
{
            Point[] pt
={
                            
new Point(this.Width /2,0),
                            
new Point(0,this.Height/2),
                            
new Point(this.Width/2,this.Height),
                            
new Point(this.Width,this.Height/2),
                            
new Point(this.Width,0)
                        }
;

            
            IntPtr m_rgn;
            m_rgn
=CreatePolygonRgn(pt,5,WINDING);
            SetWindowRgn(
this.Handle,m_rgn,true);

看看下面的,可能喜欢的人多些.

动画效果

using  System.Runtime.InteropServices;


        [System.Runtime.InteropServices.DllImport(
"user32"
)]
        
private static extern bool AnimateWindow(IntPtr hwnd,int dwTime, int
 dwFlags);
        
const int AW_HOR_POSITIVE = 0x0001
;
        
const int AW_HOR_NEGATIVE = 0x0002
;
        
const int AW_VER_POSITIVE = 0x0004
;
        
const int AW_VER_NEGATIVE = 0x0008
;
        
const int AW_CENTER = 0x0010
;
        
const int AW_HIDE = 0x10000
;
        
const int AW_ACTIVATE = 0x20000
;
        
const int AW_SLIDE = 0x40000
;
        
private
 System.Windows.Forms.MainMenu mainMenu1;
        
private
 System.Windows.Forms.MenuItem menuItem1;
        
private
 System.Windows.Forms.MenuItem menuItem2;
        
const int AW_BLEND = 0x80000
;        

        
private void Form1_Load(object
 sender, System.EventArgs e)
        
{
            AnimateWindow(
this.Handle,1000, AW_CENTER |
 AW_ACTIVATE);
        
        }


        
private void Form1_Closing(object  sender, System.ComponentModel.CancelEventArgs e)
        
{
            AnimateWindow(
this.Handle, 1000, AW_SLIDE | AW_HIDE |
 AW_VER_NEGATIVE);
            
        }

这个可以实现像QQ那样的上拉效果,当然需要把窗体关闭改为鼠标离开事件了,呵呵.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值