2010-11-19 16 views
0

Dans Forms de fenêtre, j'ai placé un PictureBox comme image d'arrière-plan. Ensuite, j'ai fait en sorte que si je redimensionne la fenêtre, l'image s'étire et grossit au fur et à mesure que je la redimensionne, et que l'image entière remplisse toujours le formulaire entier. Pour cela, je l'ai utilisé le code suivant:Conserver la position relative de PictureBox lors du redimensionnement du formulaire

  image.Dock = DockStyle.Fill; 
    image.Anchor = AnchorStyles.Top | AnchorStyles.Left; 
    image.SizeMode = PictureBoxSizeMode.StretchImage;

J'ai eu aucun problème avec cela simplement que ce soit parce que l'image est remplissant toute la fenêtre. Ce que je veux faire maintenant, cependant, est de mettre sur un autre (plus petit) pictureBox, qui va être exactement 20 px au-dessus du centre du formulaire, et s'étendra également comme je redimensionne la fenêtre, et sera toujours rester légèrement au-dessus du centre du formulaire, peu importe combien je le redimensionne. Le fait est que je ne peux pas définir la propriété Location du PictureBox, car alors la position est absolue et l'image ne s'étire pas et reste au centre lorsque je redimensionne la fenêtre, mais restera là où elle est, selon les coordonnées x et y de la fenêtre. Ce que je veux, c'est que l'image s'étire et bouge en fonction de la façon dont j'étire et déplace la fenêtre, comme j'ai pu le faire avec l'image que j'ai en arrière-plan.

Répondre

4

Positionnez votre imagebox sur le formulaire où vous le souhaitez, puis réglez la propriété Anchor sur haut, bas, droite et gauche. En l'épinglant aux quatre côtés, il s'étire et rétrécit à mesure que la forme se redimensionne.

Utilisez-les en conjonction avec les propriétés MinimumSize et MaximumSize pour empêcher l'image d'être trop petite ou trop grande.

+0

Cela fonctionne, mais puis-je faire en sorte que lorsque je compresse la fenêtre ensemble, le pictureBox ne disparaît pas, mais a plutôt une taille minimale définie, en dessous de laquelle il ne ira jamais? – NoelAramis

+0

déjà mis à jour ma réponse pour faire face à cela:) Tout peut être fait dans le concepteur –