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

  • 相关阅读:
    uniapp中的跳转传参
    图解排序算法(三)之堆排序
    serverlesss
    kvm
    用户态和内核态的理解和区别
    MySQL优化十大技巧
    不懂数据库索引的底层原理?那是因为你心里没点b树
    让你的 Linux 命令骚起来
    史上最简约的vi教程
    mysql 四种隔离级别
  • 原文地址:https://www.cnblogs.com/gc2013/p/4030505.html
Copyright © 2020-2023  润新知