我正在尝试向我的 Win Forms 应用程序中的几个按钮添加一些背景图像。三张图片大小不同(即像素尺寸不匹配,一张是 128x128,另一张是 256x256)。我需要按钮的大小相同(否则 GUI 非常不对称)。在不更改实际图像文件的情况下,如何使图像随按钮大小缩放?
我已经尝试创建自己的类,并为按钮调整大小事件添加事件处理程序,但这似乎不起作用。我的代码:
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);
忘了说,上面的代码根本没有调整图像的大小。按钮仍然需要具有不同的大小才能完整显示图像。
最佳答案
将背景图像添加到 .NET Button 对象并将其缩放以适合的最简单方法
我使用此方法来避免对新类和事件处理程序进行任何额外编码。这也帮助我避免将所有 Button 对象转换为 Image 对象。
将图像添加到您的 Resources.resx 文件。
点击您选择的按钮。
导航到
BackgroundImage
属性并选择您导入到项目的 resources.resx 文件中的图像。导航到
BackgroundImageLayout
属性并选择Stretch
。
确保您没有为 Image
和 Text
属性输入任何内容,否则它们会干扰您的新背景图像。
关于c# - 使用按钮大小制作背景图像比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13357032/