Zoom dans autoresize picturebox

Résolu
cs_kakol Messages postés 180 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 12 juin 2008 - 12 août 2005 à 18:12
Moucave Messages postés 130 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 10 septembre 2008 - 17 août 2005 à 18:06
Bonjour,
J'essaie desesperement depuis un certain temps d'ajouter une fonction zoom au code de Kangoo06 : http://www.csharpfr.com/code.aspx?id=20832 , mais cela reste toujours sans succes.
En effet, ce code permet de redimentionner automatiquement une picturebox lors l'un changement de taille de la fenetre. Je voudrais donc pouvoir y rajouter une fonction zoom en utilisant 2 boutons (+ et -) et une fois l'image zoomee, pouvoir naviguer dessus en utilisant des scrollbars (un peu comme dans paint). Tout cela bien sur en gardant la taille de la picturebox fixe une fois qu'elle a ete redimentionnee. Le probleme c'est que j'ai essaye de rajouter un panel, cela fonctionne mais le panel lui n'est pas redimentionne automatiquement.

Quelqu'un aurait-il une autre idee ou pourrait m'aider a integrer cette fonction?
D'avance merci pour toutes vos suggestions.

*** Kakol ***
A voir également:

10 réponses

cs_kakol Messages postés 180 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 12 juin 2008
17 août 2005 à 18:02
Salut,
Bon j'ai resolu mon probleme grace a Fildomen et en "bidouillant" avec les Anchors. En effet en mettant les anchors dans les 4 coins pour le panel et la pictureBox , la taille de la pictureBox ne depassait jamais celle du panel et donc les scrollbars n'apparaissaient pas. Donc pour faire le zoom je met les anchors de la pictureBox en haut et a gauche puis je les reinitialise apres. C'est surement pas optimise mais pour le moment ca fonctionne. J'ai aussi remplacer la trackbar par 2 boutons (zoom + et zoom -).
Voici mon code pour pour ceux que ca peut aider (au depart les anchors sont aux 4 coins pour le panel et la pictureBox) :
reprendre le code du message precedent et enlever ce qui correspondait a la trackbar (Zoom_MouseUp) puis ajouter

private void buttonplus_Click(object sender, System.EventArgs e)
{
pictureBoxImage.Anchor=(System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left);
if (zoom<10)
{
zoom=zoom+2;
pictureBoxImage.Width = ss.Width + (ss.Width / 4) * zoom;
pictureBoxImage.Height = ss.Height + (ss.Height / 4) * zoom;
}
}

private void buttonmoins_Click(object sender, System.EventArgs e)
{
pictureBoxImage.Anchor=(System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left);
if(zoom>=2)
{
zoom=zoom-2;
pictureBoxImage.Width = ss.Width + (ss.Width / 4) * zoom;
pictureBoxImage.Height = ss.Height + (ss.Height / 4) * zoom;
}
if(zoom==0)
{
pictureBoxImage.Anchor= (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right);
}
}

private void Form1_Resize(object sender, System.EventArgs e)
{
zoom=0;
pictureBoxImage.Anchor= (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right);
ss = pictureBoxImage.Size;
}

OUF !

*** Kakol ***
3
Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010
12 août 2005 à 18:30
change la propriété du panel, Anchor

YaoYao !!
1 + 1 = 10
0
cs_kakol Messages postés 180 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 12 juin 2008
12 août 2005 à 18:36
je l'avais deja fait. le probleme c'est que le redimentionnement de la picturebox se fais avec le fichier PictureBoxAR.cs du code de Kangoo06 et je n'arrive pas a l'applique au panel.

*** Kakol ***
0
Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010
12 août 2005 à 18:58
alors tu c koi, tu va aller dans l'evenement de la picture box qui se declanche lors que les dimensions change, et tu vas regler ton panel par rapport a la picturebox

YaoYao !!
1 + 1 = 10
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_kakol Messages postés 180 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 12 juin 2008
12 août 2005 à 20:14
Je vois pas trop ce que je dois faire donc voila mon code si tu peux m'aiclairer. Pour le zoom j'ai utilise ton code que tu avais mis sur le site precedement. Tout marche (zoom, affichage des scrollbars ...) le seul truc c'est que le panel n'est pas redimentionne automatiquement lors de l'agrandissement de la fenetre,comme l'etait avant la picturebox

private System.Windows.Forms.Button buttonCharger;

private System.Windows.Forms.OpenFileDialog openFileDialog1;

private System.Windows.Forms.CheckBox checkBoxCenterImage;

private System.Windows.Forms.CheckBox checkBoxResize;

private AutoResizePictureBox.PictureBoxAR pictureBoxImage;

private System.Windows.Forms.Panel Cont;

private System.Windows.Forms.Panel panel1;

private System.Windows.Forms.TrackBar Zoom;

// ..... //

static
void Main()
{
Application.Run(
new Form1());
}

System.Drawing.Size ss;

private
void Zoom_MouseUp(
object sender, MouseEventArgs e)
{
pictureBoxImage.Width = ss.Width + (ss.Width / 4) * Zoom.Value;
pictureBoxImage.Height = ss.Height + (ss.Height / 4) * Zoom.Value;
}

private
void buttonCharger_Click(
object sender, System.EventArgs e)
{

this.openFileDialog1.ShowDialog();
}

private
void openFileDialog1_FileOk(
object sender, System.ComponentModel.CancelEventArgs e)
{

this.pictureBoxImage.Image = Image.FromFile(
this.openFileDialog1.FileName);
}

private
void checkBoxCenterImage_CheckedChanged(
object sender, System.EventArgs e)
{

this.pictureBoxImage.CenterImage =
this.checkBoxCenterImage.Checked;
}

private
void checkBoxResize_CheckedChanged(
object sender, System.EventArgs e)
{

this.pictureBoxImage.AutoChangeMaxSize =
this.checkBoxResize.Checked;
}

private
void Form1_Load(
object sender, System.EventArgs e)
{
ss = pictureBoxImage.Size;

this.checkBoxResize.Checked =
this.pictureBoxImage.AutoChangeMaxSize;

this.checkBoxCenterImage.Checked =
this.pictureBoxImage.CenterImage;
}

Donc voila ca c'est le code que j'ai dans le Form1 et apres j'ai le fichier PictureBoxAR.cs dont le code sur trouve ici : http://www.csharpfr.com/code.aspx?id=20832

En esperant y arriver un jour ...
merci pour ton aide

*** Kakol ***
0
Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010
12 août 2005 à 20:58
je comprend toujours pas pkoi anchor marche pas, stp tu peux mettre une capture d'ecran?? si tu trouve pas ou heberger, envoie la moi [mailto:yassinelemalin@hotmail.com yassinelemalin@hotmail.com] , c un pas un gros problème ca, on va trouver surement la soluce

YaoYao !!
1 + 1 = 10
0
cs_kakol Messages postés 180 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 12 juin 2008
12 août 2005 à 21:18
ok je t'envoie ca tout de suite.
merci pour le temps que tu m'accorde

*** Kakol ***
0
Moucave Messages postés 130 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 10 septembre 2008
16 août 2005 à 20:44
Salut kakol,

Moi aussi j'ai des soucis avec une fonction zoom. Pouras tu me tenir au courant de l'avancement de ton programme car je suis completement bloque?
Merci d'avance.

--- Moucave , petit singe au pays du c# ---
0
cs_kakol Messages postés 180 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 12 juin 2008
16 août 2005 à 21:10
Ben pour le moment je suis toujours bloquee. Soit j'ai les scrollbars mais la taille de la picturebox change lorsque je baisse le zoom (Anchor dans les 4 coins pour le panel et, Anchor haut et droite pour la picturebox), soit la taille de la picturebox reste la meme (ce que je cherche a faire) mais les scrollbars n'apparaissent pas (Anchor dans les 4 coins pour le panel et la picturebox) et je ne comprend pas pourquoi. Mais je te tiendrais au courant si ya du nouveau.

*** Kakol ***
0
Moucave Messages postés 130 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 10 septembre 2008
17 août 2005 à 18:06
S@lut!

Merci kakol ton code va bien m'aider car depuis en moment je suis au point mort avec mon zoom.
@ bientot

--- Moucave , petit singe au pays du c# ---
0
Rejoignez-nous