如何实现xp开机的用户切换界面
想实现类似于xp开机时的用户切换界面,当鼠标进入图形区域的时候,图形开始变得清晰,而且字体颜色加深,而当鼠标离开图形区域的时候,图形开始变得灰暗,而且字体也变成灰色。
小弟通过交换图片和区域更新已经近似实现了以上功能,但是还是存在下面的两个问题无法解决,请各位大大帮帮忙了。
1.小弟每次刷新局部区域的时候,总会有白色区域一晃而过,但是对于xp开机界面就不存在这种情况,不知道是为什么?
2.小弟的图形更换过于突兀,一下子就实现了,而xp的效果明显有一种淡入淡出的感觉,请教这是如何实现的呢?
问题点数:50、回复次数:6Top
1 楼moon_inwell(井中月)回复于 2005-11-24 09:56:37 得分 0
请高手赐教Top
2 楼yyw84(乱码人生)回复于 2005-11-24 10:23:34 得分 0
已经有人做出完全一模一样的控件了
以前在下面这个地址里面有看到过,楼主可以去找一下,
http://www.windowsforms.net/Top
3 楼s5689412(华君)回复于 2005-11-24 10:48:57 得分 30
1.因为重画的原因,可以使用DoubleBuffer来解决
2.淡入淡出的效果,简单的可以参考这个例子来实现(VB,稍改写一下即可):
http://www.codeguru.com/vb/gen/vb_graphics/article.php/c2385/Top
4 楼yyw84(乱码人生)回复于 2005-11-24 12:20:46 得分 10
http://www.windowsforms.net/default.aspx?tabindex=6&tabid=47&ItemID=22&mid=142Top
5 楼zhzuo(秋枫)回复于 2005-11-24 13:23:46 得分 10
使用一个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();
}
Top
6 楼sindia(乖乖兔)回复于 2005-11-24 13:27:09 得分 0
<A HREF="HTTP://WWW.ZJSHIGAO.CN">哈哈,是个好地方</a>Top




