Je dessine un rectangle en millimètres sur un panneau en utilisant le code suivant en C# en entrant la largeur et la longueur en mm à l'exécution. Cependant, le rectangle résultant dessiné varie en taille dans différents moniteurs. Je veux que le rectangle apparaisse la même taille indépendamment de l'exécution de l'application dans un moniteur. Est-ce que any1 peut m'aider? actuellement la largeur pour 10mm mesure 12mm et la longueur pour 10mm montre 11mm en utilisant une balance. J'ai testé l'application sur différents moniteurs, là encore, elle montre une longueur différente. Est-ce que c'est quand même que je peux le montrer pour avoir la même largeur et la même longueur?dessiner un rectangle en millimètres n'affiche pas la largeur exacte
void panel1_Paint(object sender, PaintEventArgs e)
{
SolidBrush ygBrush = new SolidBrush(Color.YellowGreen);
g = panel1.CreateGraphics();
g.PageUnit = GraphicsUnit.Millimeter;
int w = Int32.Parse(textBox1.Text.ToString());
int h = Int32.Parse(textBox2.Text.ToString());
rct = new Rectangle(94, 27, w, h);
g.FillRectangle(ygBrush, rct);
}
Merci. Mais j'ai testé l'application dans 3 machines différentes et également vérifié la valeur DPI de ces moniteurs en le récupérant via g.DPIX. La valeur était 96dpi. Y at-il un paramètre qui change avec différents moniteurs ou une résolution d'écran différente. J'ai utilisé d'autres options comme GetDeviceCaps(), Screen.PrimaryScreen.Bounds aussi. Je ne suis pas en mesure de comprendre exactement quel paramètre varie avec différentes machines ou au moins l'application devrait fonctionner correctement pour différentes résolutions. – user338081
Non, c'est mon point: dpi est rarement précis, et il est encore plus rare que quelqu'un configure correctement leur système. Rappelez-vous: la machine elle-même n'a aucun moyen de savoir à quelle taille elle est connectée. EG: à la maison, j'ai un moniteur de 24 "et un de 26", tous deux fonctionnant à la même résolution. Le DPI sur chaque moniteur est différent - mais Windows n'en a aucune idée. Votre logiciel * ne pourra jamais fonctionner * comme requis sur ma machine tant que je n'aurai pas personnellement informé Windows de la différence de mon affichage. Si vous tenez également compte des changements de résolution, ce problème devient encore plus complexe ... –
Yup Thanks ..Got it. – user338081