想实现类似于xp开机时的用户切换界面,当鼠标进入图形区域的时候,图形开始变得清晰,而且字体颜色加深,而当鼠标离开图形区域的时候,图形开始变得灰暗,而且字体也变成灰色。
小弟通过交换图片和区域更新已经近似实现了以上功能,但是还是存在下面的两个问题无法解决,请各位大大帮帮忙了。
1.小弟每次刷新局部区域的时候,总会有白色区域一晃而过,但是对于xp开机界面就不存在这种情况,不知道是为什么?
2.小弟的图形更换过于突兀,一下子就实现了,而xp的效果明显有一种淡入淡出的感觉,请教这是如何实现的呢?

解决方案 »

  1.   

    已经有人做出完全一模一样的控件了
    以前在下面这个地址里面有看到过,楼主可以去找一下,
    http://www.windowsforms.net/
      

  2.   

    1.因为重画的原因,可以使用DoubleBuffer来解决
    2.淡入淡出的效果,简单的可以参考这个例子来实现(VB,稍改写一下即可):
    http://www.codeguru.com/vb/gen/vb_graphics/article.php/c2385/
      

  3.   

    http://www.windowsforms.net/default.aspx?tabindex=6&tabid=47&ItemID=22&mid=142
      

  4.   

    使用一个Timer控件,
    类似的例子,
    实现一个窗体,在弹出时要慢慢从透明到不透明的特效
            private double opacityIncrement = 0.1;
    private const int changeInterval = 25;
    private Timer timer1; //表单载入
    private void Form1_Load(object sender, System.EventArgs e)
    { timer1=new Timer();
    timer1.Interval=changeInterval;
    timer1.Tick+=new System.EventHandler(this.timer1_Tick);
    this.Opacity=0;
    timer1.Start();
    } //渐显事件
    private void timer1_Tick(object sender, System.EventArgs e)
    {
              this.timer1.Stop();
    if(this.Opacity<1)
    {
    this.Opacity=this.Opacity+this.changeInterval;
    }
    else
    {
    this.timer1.Enabled=false;
    }
            this.timer1.Start();
            }
      

  5.   

    <A HREF="HTTP://WWW.ZJSHIGAO.CN">哈哈,是个好地方</a>