visual una tamaño imagen como cambiar boton ajustar c# user-controls picturebox autoresize

una - cambiar tamaño imagen picturebox c#



c#Cambiar el tamaño del control padre cuando un PictureBox hijo cambia la Imagen (2)

Fue hace mucho tiempo cuando trabajé con WinForms la última vez, pero ...
Mi primer pensamiento es: ¿ha intentado establecer el valor de la propiedad AutoSize del control principal en ''true'' y AutoSizeMode en GrowAndShrink y llamar al método Refresh() del control principal cuando se carga una nueva imagen en el cuadro de imagen?

Tengo un UserControl que contiene un PictureBox y una etiqueta. El Control carga tres imágenes diferentes en PictureBox en diferentes eventos (por ejemplo, onMouseEnter, OnMouseLeave). Como las imágenes pueden tener diferentes tamaños, necesito cambiar el tamaño de la PictureBox y el control en sí. A continuación se proporciona el evento OnPaint del control, pero esto no funciona.

protected override void OnPaint(PaintEventArgs pe) { if (pictureBox.Image != null) { this.Width = this.pictureBox.Image.Size.Width; this.Height = this.pictureBox.Image.Size.Height; CutRoundedRectangle2(pictureBox, cornerRadius); } else { Bitmap DrawArea = new Bitmap(pictureBox.Size.Width, pictureBox.Size.Height); Graphics g = Graphics.FromImage(DrawArea); Pen mypen = new Pen(Color.Black); pictureBox.Image = DrawArea; System.Drawing.Pen pen = new Pen(new SolidBrush(this.ForeColor)); g.DrawRectangle(pen, 0, 0, this.Width-1, this.Height-1); g.Dispose(); } this.labelText.ocation = new Point((this.pictureBox.Width - this.labelText.Width) / 2, (this.pictureBox.Height - this.labelText.Height) / 2); base.OnPaint(pe); }

El PictureBox SizeMode se establece en el control del control:

this.pictureBox.SizeMode = PictureBoxSizeMode.AutoSize;


@Alexey, el evento de cambio de tamaño pictureBox ayudó!

private void pictureBox_Resize(object sender, EventArgs e) { this.Width = this.pictureBox.Image.Size.Width; this.Height = this.pictureBox.Image.Size.Height; }