Sto progettando un semplice visualizzatore di immagini con la possibilità di eseguire alcune elaborazioni di base dell'immagine. Al momento ho il problema di mantenere il PictureBox
centrato all'interno di un TabPage
tutto il tempo oltre a mantenere la dimensione e la dimensione della picture box uguale a quella mostrata dall'immagine. Finora non ho avuto successo.Mantenere un PictureBox centrato all'interno di un contenitore
Ho il seguente codice che chiamo nel costruttore di moduli per posizionarlo al centro. funziona la prima volta a centrare l'picturebox:
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;
}
Ma non ridimensionare il picturebox alla sua immagine (è possibile vedere la parte nera che è tornato colore per il controllo PictureBox):
il problema sta peggiorando, non appena ho ridimensionare la forma, la posizione picturebox volontà va verso l'alto:
Io chiamo il codice qui sopra anche nell'evento di ridimensionamento del modulo, non ho idea del perché funzioni all'avvio dell'applicazione. Sarebbe bello se qualcuno potesse dirmi quali proprietà dovrei prendermi cura di ottenere una immagine ben centrata che è sempre grande come la sua immagine.
Provare a impostare Dock per riempire e impostare l'immagine come immagine di sfondo. BackgroundImageLayout può essere impostato su Center. E BackGroundColor to Transparent –
La dimensione di 'picturebox.Image' è uguale alla dimensione di' picturebox'? perché ho bisogno di lavorare sui pixel dell'immagine, non so se la picturebox è più grande dell'immagine, l'immagine su cui sto lavorando sarà la picturebox stessa ?! sembra stupido, lo so! –
ma poi penso di avere problemi se voglio ingrandire l'immagine! –