C#中如何实现文字在图片中移动,最好能在移动过程中慢慢消失

 我来答
wz79135
2011-12-31 · 超过17用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:67.2万
展开全部
在论坛找的跑马灯效果 跟你说的要求差不多 自己还没试验

你先弄看看
在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);
}
蓝之心畔
2011-12-30 · TA获得超过211个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:203万
展开全部
winforms我不知道,应该也麻烦点,网页的话大多应该是用js实现的,这个应该不难,js控制一个层,图片放在层里,控制层的位置移动,直至多少秒或者根据图片宽度当图片完全展示之后消失,难度都是不大的,如果楼主不太擅长写这样的js的话,建议去懒人图库或者阿里西西找找
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
凝渊_赤睛
2011-12-30
知道答主
回答量:68
采纳率:0%
帮助的人:44.2万
展开全部
将文字单独设置成一个picturebox控件,再利用timer控件甚至一个属性即可,那个属性忘记了,是专门管理透明度的,呵呵,不好意思呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leiyangbdwk
2011-12-30 · TA获得超过3295个赞
知道大有可为答主
回答量:4975
采纳率:12%
帮助的人:4378万
展开全部
查查gdi+的相关内容。
可以先给图片框设定一张图片,
然后在上面定位文字。
文字随着timer的时间移动,都是可以做到的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式