2013-06-07 4 views
0

Изображение имеет ширину 200 пикселей, а pictureBox - 400 пикселей.Как я могу повторить изображение в pictureBox

Какое свойство pictureBox следует установить для отображения изображения repeat-x?

+2

Что не так с по умолчанию «BackgroundImageLayout = ImageLayout.Tile;» Пожалуйста, уточните, что именно вы пытаетесь выполнить. Вы хотите уменьшить изображение и повторить его несколько раз в «PictureBox»? – CodeCamper

+0

@CodeCamper да, я хочу повторить изображение несколько раз в окне изображения, но не нужно сжимать или масштабировать его. – Ice

+0

@ Так что, когда вы используете 'ImageLayout.Tile'? Сжимает ли он и искажает изображение? –

ответ

2

Я не думаю, что есть какое-либо свойство, которое делает отображение изображения x раз неоднократно горизонтально. Но немного пользовательский код может помочь, вот мой код:

public static class PictureBoxExtension 
{ 
    public static void SetImage(this PictureBox pic, Image image, int repeatX) 
    { 
     Bitmap bm = new Bitmap(image.Width * repeatX, image.Height); 
     Graphics gp = Graphics.FromImage(bm); 
     for (int x = 0; x <= bm.Width - image.Width; x += image.Width) 
     { 
      gp.DrawImage(image, new Point(x, 0)); 
     } 
     pic.Image = bm; 
    } 
} 

//Now you can use the extension method SetImage to make the PictureBox display the image x-repeatedly 
myPictureBox.SetImage(myImage, 3);//repeat 3 images horizontally. 

Вы можете настроить код, чтобы сделать его повторить вертикально или выглядеть проверочной доски.

Надеюсь, это поможет!