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="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);    
  }   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM