控件(如panel等)的背景图片如何做到拉伸呢?(默认是平铺的) 窗体的背景图片拉伸可以做到,我采用同样的方法对控件操作,可是不行。对于控件的背景图片的拉伸怎么做呢,各位兄弟,指点指点。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 style属性不行,还有哪位老兄能够给点建议啊~~ 关注!帮你顶,我也想知道这个问题================================================================此帖通过csdn小助手回复。小助手只加载最核心数据显示更快流量更小。下载地址:http://qqwwee.com/csdn.rar这个软件真的很好,推荐大家使用!也可以给我发邮件[email protected] 声明我和作者素不相识。================================================================ picturebox可以拉伸,panel就不清楚了panel有image属性吗,如果有你拉到这里面试试 backgroundimage属性大部分的控件都是有的,如果我的控件较大,而图片太小,那显示出来不是很难看吗?如果做到拉伸图片显示呢?那就好了。如果能做到这一点,还可以不用考虑显示器的分辨率啊字体大小啊所带来的影响了。那些高手都跑哪去啦???那些星星呢?出来帮帮忙好吗? 处理图片和背景图片两回事吧,除非在控件里添加处理图片这一部分,如某一控件设置其backgroundimage时,自动对该图片处理成拉伸显示在控件上,否则没用。如果这样的话,那就要改动控件了,这肯定不是好方法。请问高手们~对于这个问题有什么好一点的方法呢? 背景图是如何画出来的?你可以用Reflector看一下在Control的方法:internal void PaintBackground(PaintEventArgs e, Rectangle rectangle)中有这么一段: TextureBrush brush1 = new TextureBrush(this.BackgroundImage, WrapMode.Tile); try { Matrix matrix1 = brush1.Transform; matrix1.Translate((float) this.DisplayRectangle.X, (float) this.DisplayRectangle.Y); brush1.Transform = matrix1; e.Graphics.FillRectangle(brush1, rectangle); return; } finally { brush1.Dispose(); }其中WrapMode决定了画的方式,不过没有拉伸这个选项所以你必须自己处理,重写OnPaint,或者响应Paint事件直接用Graphics.DrawImage画就可以了protected override void OnPaint(PaintEventArgs pe){ if (this.image != null) { pe.Graphics.DrawImage(this.image, this.Rectangle); } base.OnPaint(pe);} re:Jim3(Jim) 不行啊 ,兄弟,我试了没反应,我是设置backgroundimage的拉伸还是平铺的,不好看啊====PEKINGLIU==== 需要自定义绘制:yourForm_OnLoad(...){Bitmap m_Bitmap = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height);Graphics g = Graphics.FromImage(m_Bitmap);g.DrawImage(yourImage, this.ClientRectangle, new Rectangle(0, 0, yourImage.Width, yourImage.Height), GraphicsUnit.Pixel);}yourControl_OnPaint(...){Graphics g = yourControl.CreateGraphics();g.DrawImage(m_Bitmap);g.Dispose();} 怎么用xmldocument读一个xml文件? 数据库无法写入 关于TableName 的问题 代码段中使用同名变量,这么做难道不会丢失句柄吗?? 怎么样固定datagrid的宽度,急! 高分请教: 取出datagrid里面指定列的值 最后10分,请高手帮帮忙:哪里有c#(winform)控件的使用说明? 24.6 + 12.3 不等于36.9! double 运算引发的的错误 求IDE代码 批量下载的问题 mdi背景图片如何居中或拉伸
帮你顶,我也想知道这个问题================================================================
此帖通过csdn小助手回复。小助手只加载最核心数据显示更快流量更小。
下载地址:http://qqwwee.com/csdn.rar
这个软件真的很好,推荐大家使用!也可以给我发邮件
[email protected] 声明我和作者素不相识。
================================================================
panel有image属性吗,如果有你拉到这里面试试
如果我的控件较大,而图片太小,那显示出来不是很难看吗?
如果做到拉伸图片显示呢?那就好了。
如果能做到这一点,还可以不用考虑显示器的分辨率啊字体大小啊所带来的影响了。那些高手都跑哪去啦???那些星星呢?
出来帮帮忙好吗?
除非在控件里添加处理图片这一部分,如某一控件设置其backgroundimage时,自动对该图片处理成拉伸显示在控件上,
否则没用。如果这样的话,那就要改动控件了,这肯定不是好方法。请问高手们~对于这个问题有什么好一点的方法呢?
在Control的方法:
internal void PaintBackground(PaintEventArgs e, Rectangle rectangle)
中有这么一段: TextureBrush brush1 = new TextureBrush(this.BackgroundImage, WrapMode.Tile);
try
{
Matrix matrix1 = brush1.Transform;
matrix1.Translate((float) this.DisplayRectangle.X, (float) this.DisplayRectangle.Y);
brush1.Transform = matrix1;
e.Graphics.FillRectangle(brush1, rectangle);
return;
}
finally
{
brush1.Dispose();
}其中WrapMode决定了画的方式,不过没有拉伸这个选项所以你必须自己处理,重写OnPaint,或者响应Paint事件
直接用Graphics.DrawImage画就可以了
protected override void OnPaint(PaintEventArgs pe)
{
if (this.image != null)
{
pe.Graphics.DrawImage(this.image, this.Rectangle);
}
base.OnPaint(pe);
}
不行啊 ,兄弟,我试了没反应,我是设置backgroundimage的拉伸还是平铺的,不好看啊====PEKINGLIU====
yourForm_OnLoad(...)
{
Bitmap m_Bitmap = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height);
Graphics g = Graphics.FromImage(m_Bitmap);
g.DrawImage(yourImage, this.ClientRectangle, new Rectangle(0, 0, yourImage.Width, yourImage.Height), GraphicsUnit.Pixel);
}yourControl_OnPaint(...)
{
Graphics g = yourControl.CreateGraphics();
g.DrawImage(m_Bitmap);
g.Dispose();
}