C# 北极光图片处理
问题:给控件设置一张背景图,控件的长度是可变的。怎么控制背景图左右两边的弧度不变。不变形处理。 图片变形处理 --------------------编程问答--------------------该图为控件的背景图。求高手指教如何使控件在改变长度以后左右两边的弧度不变形。 --------------------编程问答-------------------- 我有思路是这样的。
当控件的长度发生变化时,设置控件背景,分三步。
第一:截取左边一部分给控件左边作为背景;
第二:截取图片右边部分给控件右边作为背景;
第三,截取图片中间部分给控件其余部分作为背景。
求高手指点。 --------------------编程问答-------------------- 就是9切图法了,图在程序中把4个角不拉伸绘制到目标控件4个角,然后4个边做向拉伸,中间的双向拉伸. --------------------编程问答--------------------
具体如何操作,我对GDI不熟悉。还请指点。 --------------------编程问答-------------------- 学习学习 --------------------编程问答-------------------- 左边一刀,右边一刀,中间平铺。 --------------------编程问答--------------------
/// <summary>
/// 截取背景图两边,中间填充
/// </summary>
public void SetBackGroundImage()
{
this.BackgroundImage = null;
Bitmap bit = new Bitmap(this.Width,this.Height);
Graphics g = Graphics.FromImage(bit);
g.DrawImage(Properties.Resources.pallet, new Rectangle(new Point(0, 0), new Size(107, Properties.Resources.pallet.Height)), new Rectangle(new Point(0, 0), new Size(107, Properties.Resources.pallet.Height)), GraphicsUnit.Pixel);
g.DrawImage(Properties.Resources.pallet, new Rectangle(new Point(107, 0), new Size(Properties.Resources.pallet.Width - 107 - 107, Properties.Resources.pallet.Height)), new Rectangle(new Point(107, 0), new Size(107, Properties.Resources.pallet.Height)), GraphicsUnit.Pixel);
g.DrawImage(Properties.Resources.pallet, new Rectangle(new Point(this.Width - 107, 0), new Size(107, Properties.Resources.pallet.Height)), new Rectangle(new Point(Properties.Resources.pallet.Width - 107, 0), new Size(Properties.Resources.pallet.Width - 107, Properties.Resources.pallet.Height)), GraphicsUnit.Pixel);
this.BackgroundImage = bit;
}
解决了,不过还是有点小问题。 --------------------编程问答-------------------- [精仿]QQ2013局域网通讯(10.30更新版-带最新版界面库)
直接用这里面的界面库,使用SkinButton自定义按钮控件里面的BackRectangle九宫区域属性即可解决 --------------------编程问答-------------------- 具体的可能暂时你无法理解,我加你QQ吧,我一边做一边解释给你,希望一次就会. --------------------编程问答--------------------
我的QQ:382689696 求指教
补充:.NET技术 , C#