天天看點

c# 滾動字幕的實作

在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="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)//文字改變時,重新顯示  

  temp = text;  

  }  

  else  

  p = new PointF(p.X - 10, 0);//每次偏移10  

  if (p.X <= -s.Width)  

  g.DrawString(text, f, brush, p);    

  }