winform 字体逐渐变色的效果怎么实现

信xxx 2018-06-06 05:37:20
就像KTV里边的歌词逐渐变色效果。
求具体代码,小白一个。
...全文
1364 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
信xxx 2018-06-11
  • 打赏
  • 举报
回复
结贴,水平太低做不出来
E次奥 2018-06-08
  • 打赏
  • 举报
回复
引用 18 楼 chen1421819151 的回复:
[quote=引用 7 楼 xuzuning 的回复:] 同样的歌词在同样的起点写两遍,只是颜色不同 写第二遍时指定 gd 的裁剪区(Clip)宽度以已经历的时间决定
如果改变宽度的话,那不就全都变色了吗[/quote] 根据时间慢慢变啊,别一次就改变
xuzuning 2018-06-08
  • 打赏
  • 举报
回复
你并没有说明你需要的效果,大家都是猜的
引用 18 楼 chen1421819151 的回复:
[quote=引用 7 楼 xuzuning 的回复:] 同样的歌词在同样的起点写两遍,只是颜色不同 写第二遍时指定 gd 的裁剪区(Clip)宽度以已经历的时间决定
如果改变宽度的话,那不就全都变色了吗[/quote]
信xxx 2018-06-08
  • 打赏
  • 举报
回复
引用 19 楼 sp1234 的回复:
给 ktv 市场写程序还用 winform 啊?选择 wpf 或者 web 方式才能轻松开发对路的软件。
不是给KTV写,我自己随便写的程序啊。。。
  • 打赏
  • 举报
回复
给 ktv 市场写程序还用 winform 啊?选择 wpf 或者 web 方式才能轻松开发对路的软件。
信xxx 2018-06-08
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
同样的歌词在同样的起点写两遍,只是颜色不同 写第二遍时指定 gd 的裁剪区(Clip)宽度以已经历的时间决定
如果改变宽度的话,那不就全都变色了吗
信xxx 2018-06-07
  • 打赏
  • 举报
回复
引用 11 楼 jiang403385120 的回复:
private void Form1_Load(object sender, EventArgs e) { timer1.Enabled = true; timer1.Interval = 1000; } int count; private void timer1_Tick(object sender, EventArgs e) { count++; if (count%1 == 0) { btnTest.Text = "开 始"; btnTest.ForeColor = Color.Green; } if (count % 2 == 0) { btnTest.Text = "结 束"; btnTest.ForeColor = Color.Blue; } if (count % 3 == 0) { btnTest.Text = "暂 停"; btnTest.ForeColor = Color.Red; } }
哥们,你这个代码不符合我的要求啊。我是想让他像卡拉OK似的逐字变色啊
c02645 2018-06-07
  • 打赏
  • 举报
回复
你用两个label,一个红色,一个蓝色,文字相同,位置相同, 要变色,只需要改变最前面的label的宽度就解决了,不需要什么样式
  • 打赏
  • 举报
回复
private void Form1_Load(object sender, EventArgs e) { timer1.Enabled = true; timer1.Interval = 1000; } int count; private void timer1_Tick(object sender, EventArgs e) { count++; if (count%1 == 0) { btnTest.Text = "开 始"; btnTest.ForeColor = Color.Green; } if (count % 2 == 0) { btnTest.Text = "结 束"; btnTest.ForeColor = Color.Blue; } if (count % 3 == 0) { btnTest.Text = "暂 停"; btnTest.ForeColor = Color.Red; } }
  • 打赏
  • 举报
回复
加个定时器或者多线程都可以,需要远程协助的话 QQ403385120
信xxx 2018-06-07
  • 打赏
  • 举报
回复
引用 8 楼 loyal_to 的回复:
LinearGradientBrush 设置起始颜色,和终结位置,颜色由最初的渐变到最后的,可以添加多种颜色,指定变到哪个位置,给点分呗
小白一个,求代码。解决后分肯定会给的啊
yjt347713665 2018-06-07
  • 打赏
  • 举报
回复
666666
Chasmれ 2018-06-07
  • 打赏
  • 举报
回复
     private void button1_Click(object sender, EventArgs e)
        {
            Graphics g = panel1.CreateGraphics();//创健控件的Graphics类
            g.Clear(Color.White);//以指定的颜色清除控件背景
            Color Var_Color_Up = Color.Purple ;//设置前景色
            Color Var_Color_Down = Color.YellowGreen ;//设置背景色
            Font Var_Font = new Font("宋体", 40);//设置字体样式
            string Var_Str = "有暗香盈袖";//设置字符串
            SizeF Var_Size = g.MeasureString(Var_Str, Var_Font);//获取字符串的大小
            PointF Var_Point = new PointF(5, 5);
            RectangleF Var_Rect = new RectangleF(Var_Point, Var_Size);
            LinearGradientBrush Var_LinearBrush = new LinearGradientBrush(Var_Rect, Var_Color_Up, Var_Color_Down, LinearGradientMode.Horizontal);
            g.DrawString(Var_Str, Var_Font, Var_LinearBrush, Var_Point);   
        }
Chasmれ 2018-06-07
  • 打赏
  • 举报
回复
信xxx 2018-06-07
  • 打赏
  • 举报
回复
引用 12 楼 c02645 的回复:
你用两个label,一个红色,一个蓝色,文字相同,位置相同, 要变色,只需要改变最前面的label的宽度就解决了,不需要什么样式
求代码
loyal_to 2018-06-06
  • 打赏
  • 举报
回复
LinearGradientBrush 设置起始颜色,和终结位置,颜色由最初的渐变到最后的,可以添加多种颜色,指定变到哪个位置,给点分呗
xuzuning 2018-06-06
  • 打赏
  • 举报
回复
同样的歌词在同样的起点写两遍,只是颜色不同
写第二遍时指定 gd 的裁剪区(Clip)宽度以已经历的时间决定
信xxx 2018-06-06
  • 打赏
  • 举报
回复
引用 2 楼 yuankaiwsl 的回复:
搜一下System.Drawing.Drawing2D.LinearGradientBrush
小白一个,搜了也没看懂
zbdzjx 2018-06-06
  • 打赏
  • 举报
回复
如果只是单纯的变色,例如白色的字,一点点的变成蓝色的字。可以放两个label,文字的内容、大小、位置……都一样,白色的在下面,蓝色的在上面。白色的label正常显示,蓝色的label,开始时宽度为0,随着时间增加,宽度不断增加。
巴士上的邂逅 2018-06-06
  • 打赏
  • 举报
回复
我回复时间竟然比你发帖时间早
加载更多回复(3)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧