Estoy diseñando un visor de imágenes simple con la capacidad de hacer un procesamiento de imagen básico. Por el momento tengo el problema de mantener el PictureBox
centrado dentro de un TabPage
todo el tiempo, así como mantener el ancho y el tamaño del cuadro de imagen igual que la imagen que muestra. Hasta ahora no he tenido éxito.Mantener un PictureBox centrado dentro de un contenedor
Tengo el siguiente código que llamo en el constructor de formulario para colocarlo en el centro. funciona la primera vez para centrar el cuadro de imagen:
private void SetPictureBoxOriginalSizeAndLocation(bool makeImageNull = false, DockStyle dockStyle = DockStyle.None)
{
if (makeImageNull) picBoxView.Image = null;
picBoxView.Dock = dockStyle;
var xPoint = tabImageView.Location.X + ((splitContainer.Panel2.Width/2)/2);
var yPoint = tabImageView.Location.Y;
var width = tabImageView.Width/2;
var height = (tabImageView.Height/2) - toolStripImageView.Height;
if (picBoxView.Image == null) return;
//Resize image according to width
picBoxView.Image = ImageMethods.ResizeImage(picBoxView.Image.Tag.ToString(), width, height, false);
picBoxView.Location = new Point(xPoint, yPoint);
picBoxView.Width = width;
picBoxView.Height = height;
}
Pero no cambia el tamaño del cuadro de imagen a su imagen (se puede ver la parte en negro que está de nuevo color para el control PictureBox):
el problema está empeorando en cuanto me cambio el tamaño de la forma, la posición de cuadro de imagen se va a arriba:
Llamo también al código anterior en el evento de cambio de tamaño del formulario, no tengo idea de por qué funciona cuando se inicia la aplicación. Sería bueno que alguien me diga de qué propiedades debería ocuparme para obtener una imagen bien centrada que siempre es tan grande como su imagen.
Intenta configurar Dock para completar y establecer la imagen como imagen de fondo. BackgroundImageLayout se puede establecer en Center. Y BackGroundColor to Transparent –
¿El tamaño de 'picturebox.Image' es igual al tamaño de 'picturebox'? porque necesito trabajar en los píxeles de la imagen, no sé si el cuadro de imagen es más grande que la imagen, la imagen en la que estoy trabajando será el mismo cuadro de imagen ?! suena estúpido, lo sé! –
, pero creo que tendré problemas si quiero acercar la imagen. –