En gardant un contrôle PictureBox centré à l'intérieur d'un conteneur

Je suis desiging un simple visualiseur d'images avec la capacité de faire certains de base de traitement d'image. Pour le moment j'ai le problème de la garde de la PictureBox centré à l'intérieur d'un TabPage tout le temps ainsi que de garder le contrôle picturebox largeur et de la même taille que l'image de son affiche. Jusqu'à présent, je n'avais pas de succès.

J'ai le code suivant que j'appelle dans le constructeur du formulaire pour le positionner au centre. il fonctionne de la première fois au centre de la 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;
}

Mais il ne permet pas de redimensionner le contrôle picturebox à son image (vous pouvez voir la partie noire qui est couleur d'arrière-plan pour le contrôle picturebox):

En gardant un contrôle PictureBox centré à l'intérieur d'un conteneur

Le problème s'aggrave dès que j'ai redimensionner le formulaire, le contrôle picturebox position va en haut:

En gardant un contrôle PictureBox centré à l'intérieur d'un conteneur

J'appelle le code ci-dessus dans la forme de l'événement resize aswell, aucune idée de pourquoi ça ne marche que quand l'application démarre. Ce serait bien si quelqu'un peut me dire quelles sont les propriétés que je dois prendre soin de d'arriver à un bien centré picturebox qui est toujours aussi gros que son image.

Essayez de définir le Socle à la remplir et de définir la photo comme image d'arrière-plan. BackgroundImageLayout peut être réglé au Centre. Et BackGroundColor Transparent
Le picturebox.Image taille equalst à picturebox taille? parce que j'ai besoin de travailler sur les pixels de l'image, je ne sais pas si le contrôle picturebox est plus grand que l'image, l'image que je suis en train de travailler sur sera la picturebox lui-même?! semble stupide, je sais!
mais là encore je pense que je vais avoir des problèmes si je veux zoomer dans l'image!

OriginalL'auteur Saeid Yazdani | 2012-02-21