Image aus PictureBox unendlich wiederholen

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Eistee.

    Image aus PictureBox unendlich wiederholen

    Hallo, ich möchte ein Image in einer PictureBox unendlich wiederholen, d.h., ich habe ein PNG-Image, das 48x48 groß ist, der PictureBox mit diesem COde zugewiesen:

    VB.NET-Quellcode

    1. PictureBox1.Image = Image.FromFile(Application.StartupPath & "\res\login\bg_footer.png")

    Jetzt möchte ich aber, dass das Image immerwieder wiederholt wird, also, dass die ganze PictureBox damit gefüllt ist.

    Wie geht das? Ich hab schon Stundenlang gegoogelt, aber nichts richtiges gefunden. Ich hoffe, ihr könnt mir helfen! :)

    Grüße,
    Xen0
    Kannst du GDI? Ansonsten wirds schwer. Solltest dich damit befassen.

    Zur realisierung braucht du 2 Schleifen für X und Y Richtung, Step 48, Limit Höhe bzw. Breite der Picturebox.
    Dann eben mittles DrawImage() das Bild immer an die entsprechende Position zeichen die von den Schleifen bekommst.
    Zeichnet Dein_Bild (Hier ein Bild namens Kachel aus den Resourcen), 100 mal.

    For y = 0 To 9
    For x = 0 To 9

    Die größe des Bildes ist egal, denn durch "Dein_Bild.Width * x, Dein_Bild.Height* y" wird die Position
    anhand der größe des gewählten Bildes ermittelt.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Dein_Bild As Image = My.Resources.Kachel
    3. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    4. End Sub
    5. Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
    6. For y = 0 To 9
    7. For x = 0 To 9
    8. e.Graphics.DrawImage(Dein_Bild, New Point(Dein_Bild.Width * x, Dein_Bild.Height * y))
    9. Next
    10. Next
    11. End Sub
    12. End Class

    Eistee schrieb:

    Wie sagt man: Viele Wege führen nach Rom Wobei die Lösung schon an deine Situartion angepasst ist und immer das ganze Control gefüllt wird.
    Ich werde deins auch nochmal ausprobieren, denn, wenn ich bei meinem jetzigen Code ein Control mit einem Image ausfüllen will, das größer ist, als das Control, zieht er das Image auf dem Control zusammen. Ist das bei deinem Code auch so?
    Dazu kann ich sagen, NEIN das passiert nicht.

    Dieser Code (etwas abgeändert, die größe vom Bild wird jetzt mitgegeben) sollte laufen:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Dein_Bild As Image = My.Resources.Ecke
    3. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    4. End Sub
    5. Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
    6. For y = 0 To 8
    7. For x = 0 To 8
    8. e.Graphics.DrawImage(Dein_Bild, New Rectangle(New Point(Dein_Bild.Width * x, Dein_Bild.Height * y), New Size(Dein_Bild.Width, Dein_Bild.Height)))
    9. Next
    10. Next
    11. End Sub
    12. End Class