当前位置:编程学习 > C#/ASP.NET >>

怎么设置PictureBox或者Label的背景图片的宽度和高度。

大家好,我现在有个需求如下:
    显示的PictureBox的大小和背景图片的大小不一样大,我要让图片的宽度正好可以填充PictureBox,但是高度按宽度的调整成比例调整,不用全部显示在PictureBox中(一般图片高度会高于PictureBox的高度)。目前属性只提供了Center、Stretch、Tile、Zoom 四种方式,无法满足我现在的要求,请各位有经验的朋友给与帮助。 --------------------编程问答-------------------- 图片多大,PictureBox设置成多大.


 Bitmap bm = new Bitmap(100, 100);
            PictureBox picBox = new PictureBox();
            picBox.Size = bm.Size;
            picBox.BackgroundImageLayout = ImageLayout.Center;

--------------------编程问答-------------------- PictureBox 的大小不能设置,他有大小的要求,现在只能根据PictureBox设置图片显示的大小 --------------------编程问答-------------------- 对该问题的补充和解决办法:
现在背景图片已经订下了,只是根据情况,要动态设置PictureBox的大小。

有个方式可以达到目标,但是效率低,因为一次性显示10个以上的PictureBox。比如先根据PictureBox要显示的大小,通过缩放图片生成新的图片,然后PictureBox显示这个新图片。
--------------------编程问答--------------------
public class MyPictureBox : PictureBox
{
    protected override void OnPaint(PaintEventArgs pe)
    {
        if (this.Image != null)
        {
            int height = this.Image.Height * this.ClientRectangle.Width / this.Image.Width;
            pe.Graphics.DrawImage(Image, 0, 0, this.ClientRectangle.Width, height);
        }
    }
}
--------------------编程问答-------------------- 终于自己解决了。 --------------------编程问答--------------------
引用 5 楼 picdeo 的回复:
终于自己解决了。


怎么解决的?

if (buffByte != null)
//如何控制生成图像的大小,以适应按钮:
{
MemoryStream ms = new MemoryStream(buffByte);
Image img= Image.FromStream(ms);
Bitmap bmp = new Bitmap(img,new Size(16,16));

}
--------------------编程问答-------------------- 这个什么意思呀。说的详细点吗
随便一张图片,就可以完整的现在在pictruebox上
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,