• 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);    
      }   

  • 相关阅读:
    try catch finally中return的执行顺序
    多线程和同步
    orecle常用函数
    java如何调用接口 2
    orecle 函数
    ==和equals在比较字符串时候的区别
    orecle触发器
    java实现同步的方法
    java如何调用接口
    SMM+maven下的log4j配置打印sql
  • 原文地址:https://www.cnblogs.com/gc2013/p/4030505.html
Copyright © 2020-2023  润新知