Bonjour à tous,
Ce serait pour savoir si il était possible, lors d'un redimensionnement de fenêtre avec la souris, de forcer un redimensionnement par un rapport hauteur largeur afin que celui ci soit toujours conservé.
Je vous remercie
Bonjour à tous,
Ce serait pour savoir si il était possible, lors d'un redimensionnement de fenêtre avec la souris, de forcer un redimensionnement par un rapport hauteur largeur afin que celui ci soit toujours conservé.
Je vous remercie
Tu as l'évènement resize où il te faudra parcourir tous tes contrôles afin de les redimensionner par rapport aux nouvelles dimensions de ta fenêtre.
Un exemple sur Pocket PC où je redimensionnais qu'au niveau de la largeur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 protectedSize myOriginalSize; public Real() { myOriginalSize = newSize(320, 240); } privatevoid Real_Resize(object sender, EventArgs e) { float div = Convert.ToSingle(this.ClientSize.Width) / Convert.ToSingle(myOriginalSize.Width); int Percent = Convert.ToInt32(div * 100.0); myOriginalSize = this.ClientSize; Percent = Percent - 100; if (Percent != 0 && Percent != 100) { foreach (TabPage t in tabControl.TabPages) { foreach (Control c in t.Controls) { if (c isLabel || c isTextBox || c isCheckBox || c isComboBox || c isButton || c isPanel || c isRadioButton || c isDateTimePicker || c isPictureBox) { if (Percent < 0) { float tmp1 = (float)(Convert.ToSingle(c.Width) / 100.0); float tmp2 = (float)(100.0 - Convert.ToSingle(Math.Abs(Percent))); c.Width = Convert.ToInt32(tmp1 * tmp2) - AutoScrollMargin.Width; float tmp3 = (float)(Convert.ToSingle(c.Location.X) / 100.0); Point tmpSize = c.Location; tmpSize.X = Convert.ToInt32(tmp3 * tmp2); c.Location = tmpSize; } else { float tmp1 = (float)(Convert.ToSingle(c.Width) / 100.0); float tmp2 = (float)(100.0 + Convert.ToSingle(Math.Abs(Percent))); c.Width = Convert.ToInt32(tmp1 * tmp2) - AutoScrollMargin.Width; float tmp3 = (float)(Convert.ToSingle(c.Location.X) / 100.0); Point tmpSize = c.Location; tmpSize.X = Convert.ToInt32(tmp3 * tmp2); c.Location = tmpSize; } } } } } }
Merci, j'avais aussi pensé à trappé le messige "Resize" récupérer la hauteur ou la largeur et de recalibrer la fenêtre pour qu'elle reste proportionnelle dimensionner. Mais j'aurais aimé savoir si il n'existait pas déjà un attribut pour permettre que cela soit fait directement. Du style : "this.proportional = true" ou une fonction qui prend en paramètre un rapport de proportion.
Erf j'avais pas fini mon message. Enfin merci de ta réponse et je pense que si j'ai rien de neuf sur le sujet d'ici cet après-midi je vais développer directement une fonction qui permettra de prendre en paramètre un objet et de lui appliquer un rapport de taille.![]()
Non il n'y a pas ce genre de chose, d'ailleurs c'est un gros manque pour les développeurs d'applications Windows / Mobile.
Cependant, un système de redimensionnement automatique a été incorporé avec le Framewok 3 d'après ce que j'ai vu.
bonjour Lucier ,
Si tu as eu réponse a ton post ou que tu as trouvé une solution, merci de le marqué
Merci
Notalp
Partager