• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

c# 滚动字幕的实现

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

在c#中其实滚动屏幕的实现很简单,只需要用到Graphics.DrawString方法. Graphics.DrawString (String s, Font font, Brush brush, PointF point) 在指定位置并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。

  •  s 要绘制的字符串。
  •  font 它定义字符串的文本格式。
  •  brush 它确定所绘制文本的颜色和纹理。
  •  point 结构,它指定所绘制文本的左上角。

其中,我们要用到的就是point函数,通过控制它的X或Y参数来控制文字的偏移量.下面以水平滚动字幕为例.

                       
   private  Label label = new Label();  
   public string text="csdn baihe_591";   
   
   private void FrmShow_Load(object sender, EventArgs e)  
   {            
   this.label.Location = new Point(149, 13);  
   this.label.Size = new Size(134, 16);  
   this.Controls.Add (label);           
   this.label.Text = "";  
  this.timer1.Enabled = true;  
  this.timer1.Interval = 500;   
  p = new PointF(this.label.Size.Width, 0);  
  }     
  
  PointF p;  
  Font f = new Font("宋体", 10);  
  Color c = Color.White;  
  string temp;  
  private void timer1_Tick(object sender, EventArgs e)  
  {  
  
  Graphics g = this.label.CreateGraphics();  
  SizeF s = new SizeF();  
  s = g.MeasureString(text, f);//测量文字长度  
  Brush brush = Brushes.Black;             
  g.Clear(c);//清除背景  
  
  if (temp != text)//文字改变时,重新显示  
  {  
  p = new PointF(this.label.Size.Width, 0);  
  temp = text;  
  }  
  else  
  p = new PointF(p.X - 10, 0);//每次偏移10  
  if (p.X <= -s.Width)  
  p = new PointF(this.label.Size.Width, 0);  
  g.DrawString(text, f, brush, p);    
  }   

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#窗体贴边自动隐藏组件ByRed_angelX发布时间:2022-07-13
下一篇:
c# 空接合(??)运算符的运用发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap