Autor Beitrag
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 16.03.06 23:53 
Hallo!

Ich habe eine Form, auf der mit DockType = Fill eine PictureBox platziert ist. In diese wird ein Bild geladen, welches dann in den Proportionen des Bildes angezeigt werden soll. Da die PictureBox den DockType Fill hat, muss also auch die Form die Proportionen des Bildes erhalten. Wenn der Nutzer nun die Größe der Form ändert, muss diese natürlich auch weiterhin diese Proportionen haben.

Sieht im Moment so aus:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
  public partial class PreviewForm : Form
  {
    private double ratio;
    private int oldHeight;
    private int oldWidth;

    public PreviewForm(string imagefile) : this()
    {      
            Image aImage = ImageFast.FromFile(imagefile);

            Bitmap aBitmap = new Bitmap(aImage, new Size(12801024));
           
            oldHeight = aImage.Height;
            oldWidth = aImage.Width;

            ratio = (double)oldWidth / oldHeight;
            this.Height = (int)Math.Round(this.Width / ratio);

      toolTip1.SetToolTip(pictureBox, imagefile);
            pictureBox.Image = aBitmap;
            la_loading.Visible = false;
    }


        private void PreviewForm_Resize(object sender, EventArgs e)
        {            
            this.Height = (int)Math.Round(this.Width / ratio);
        }
  }


Ich lade also das Bild mittels ImageFast-Komponente (schneller als das .NET-Zeug), behalte aber nur ein verkleinertes Bitmap. Der Grund ist auch gleichzeitig Thema dieses Threads: Die Form flackert unheimlich während der Änderung der Größe. Ich dachte erst, dass es an der Größe des Bildes liegt, aber das war nur teilweise der Grund. Es ist so, dass die Form wohl kurz bevor die Höhe gesetzt wird, einmal in der "falschen" Höhe erscheint und das sieht man.

Wie kann ich also eine flüssige Größenänderung der Form realisieren?

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".