C#滚动字幕的实现方法
本文实例讲述了C#滚动字幕的实现方法,分享给大家供大家参考。具体方法如下:
在c#中其实滚动屏幕的实现其实很简单,只需要用到Graphics.DrawString方法.Graphics.DrawString(Strings,Fontfont,Brushbrush,PointFpoint)在指定位置并且用指定的Brush和Font对象绘制指定的文本字符串。
参数说明:
s 要绘制的字符串。
font 它定义字符串的文本格式。
brush 它确定所绘制文本的颜色和纹理。
point 结构,它指定所绘制文本的左上角。
其中,我们要用到的就是point函数,通过控制它的X或Y参数来控制文字的偏移量.下面以水平滚动字幕为例.
private Labellabel=newLabel(); publicstringtext="csdnbaihe_591";
privatevoidFrmShow_Load(objectsender,EventArgse) { this.label.Location=newPoint(149,13); this.label.Size=newSize(134,16); this.Controls.Add(label); this.label.Text=""; this.timer1.Enabled=true; this.timer1.Interval=500; p=newPointF(this.label.Size.Width,0); }
PointFp; Fontf=newFont("宋体",10); Colorc=Color.White; stringtemp; privatevoidtimer1_Tick(objectsender,EventArgse) {
Graphicsg=this.label.CreateGraphics(); SizeFs=newSizeF(); s=g.MeasureString(text,f);//测量文字长度 Brushbrush=Brushes.Black; g.Clear(c);//清除背景
if(temp!=text)//文字改变时,重新显示 { p=newPointF(this.label.Size.Width,0); temp=text; } else p=newPointF(p.X-10,0);//每次偏移10 if(p.X<=-s.Width) p=newPointF(this.label.Size.Width,0); g.DrawString(text,f,brush,p); }