首页 > 编程 > C# > 正文

C#滚动字幕的实现方法

2019-10-29 21:42:31
字体:
来源:转载
供稿:网友
这篇文章主要介绍了C#滚动字幕的实现方法,主要讲述了Graphics.DrawString函数的应用方法,非常具有实用价值,需要的朋友可以参考下
 

本文实例讲述了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);    
}

 

希望本文所述对大家的C#程序设计有所帮助。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表