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):
Le problème s'aggrave dès que j'ai redimensionner le formulaire, le contrôle picturebox position va en haut:
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.
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
Vous devez vous connecter pour publier un commentaire.
Il est assez facile si vous définissez la
Anchor
style none:Puis juste au centre de la
PictureBox
d'abord chaque fois que vous modifiez l'image de laPictureBox
:Avoir le
Anchor = None
centre de laPictureBox
de contrôle pour vous chaque fois que le conteneur parent est redimensionnée parce qu'il "n'est" pas ancré à la valeur par défaut en Haut et à Gauche endroits.OriginalL'auteur LarsTech
Givien un
Form
avecTabControl
, qui aDock
ensemble deFill
, ci-dessous permettra de garder votrePictureBox
dans le centre. Il définit égalementPictureBox
taille deBitmap
taille:OriginalL'auteur StaWho
Je crois que votre problème se trouve ici
ypoint est alwways ensemble de tabImageView Y, bien qu ' il doit être mis à
devrait être presque la même chose avec xPoint
et
OriginalL'auteur Milan Halada