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