Image zu gross ...



  • Auf einem Form-Fenster, möchte ich ein grosses Image, das grösser ist als das Form-Fenster ist, anzeigen. ( mit ...DrawImage .. .im Paint-Event Handler ). Dazu möchte ich die Möglichkeit haben, das Form-Fenster mit Bildlaufleisten zu scrollen. Wie richtet man die Bildlaufleisten ein ? VScroll bzw HScroll der Form auf true setzen half nicht. Bestimmt eine einfache Frage, aber trotzdem ..


  • Administrator

    Nimm ein UserControl, dort zeichnest du rein und veränderst die Grösse des Panels anhand der Grösse des Bildes. Als Alternative würde natürlich auch noch die PictureBox zur Verfügung stehen, die zeichnet das Bitmap aber selber. Zudem musst du bei der PictureBox das Property SizeMode auf AutoSize setzen, damit sich die PictureBox entsprechend der Grösse des Bildes vergrössert oder verkleinert.
    Dann nimmst du ein weiteres Panel und fügst das UserControl oder die PictureBox hinzu. Setzt das Property AutoScroll des Panels auf true und fügst das Panel der Form hinzu, z.B. mit DockStyle Fill.

    Also (ungetestet):

    var form = new Form();
    var picBox = new PictureBox();
    var panel = new Panel();
    
    picBox.SizeMode = PictureBoxSizeMode.AutoSize;
    picBox.Image = Bitmap.FromFile("test.png");
    
    panel.AutoScroll = true;
    picBox.Parent = panel;
    
    panel.Dock = DockStyle.Fill;
    panel.Parent = form;
    
    form.Show();
    

    Grüssli



  • Huhu hab dazu noch ne Frage. Warum ist denn das Panel noch nötig? Normalerweise ist das doch nur ein visuelles Element oder? Danke

    _______________
    Post by Benelli
    Benelli Ecommerce Dienstleister


Anmelden zum Antworten