c# – 使用按钮大小制作背景图像比例
发布时间:2020-12-15 18:22:21 所属栏目:百科 来源:网络整理
导读:我正在尝试将一些背景图像添加到我的Win Forms应用程序中的几个按钮.这三个图像的大小不同(即像素尺寸不匹配,一个是128×128,另一个是256×256).我需要按钮的大小相同(否则GUI非常不对称).在不更改实际图像文件的情况下,如何使用按钮大小来缩放图像? 我已经
我正在尝试将一些背景图像添加到我的Win Forms应用程序中的几个按钮.这三个图像的大小不同(即像素尺寸不匹配,一个是128×128,另一个是256×256).我需要按钮的大小相同(否则GUI非常不对称).在不更改实际图像文件的情况下,如何使用按钮大小来缩放图像?
我已经尝试创建自己的类,并为按钮resize事件添加事件处理程序,但这似乎不起作用.我的代码: class CustomButton : Button { internal void CustomButton_Resize( object sender,EventArgs e ) { if ( this.BackgroundImage == null ) { return; } var pic = new Bitmap( this.BackgroundImage,this.Width,this.Height ); this.BackgroundImage = pic; } } 并以形式: this.buttonOne.Resize += new System.EventHandler(this.buttonOne.CustomButton_Resize); 忘记提及,上面的代码根本没有调整图像的大小.按钮仍需要具有不同的尺寸才能完全显示图像. 解决方法
简单的编程方式
假设我有一个按钮btn1,以下代码在visual-studio-2010中完美运行. private void btn1_Click(object sender,EventArgs e) { btn1.Width = 120; btn1.Height = 100; } void btn1_Resize(object sender,EventArgs e) { if ( this.BackgroundImage == null ) return; var bm = new Bitmap(btn1.BackgroundImage,new Size(btn1.Width,btn1.Height)); btn1.BackgroundImage = bm; } 更好的方法 您可以在自定义按钮的构造函数中添加eventHandler(只是为了确保您正确添加eventhandler) class CustomButton : Button { CustomButton() { this.Resize += new System.EventHandler(buttonOne.CustomButton_Resize); } void CustomButton_Resize( object sender,EventArgs e ) { if ( this.BackgroundImage == null ) return; var pic = new Bitmap( this.BackgroundImage,new Size(this.Width,this.Height) ); this.BackgroundImage = pic; } } 现在,当您将图像尺寸调整到适合其新尺寸的任何位置时,您将调整按钮的大小. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |