Maison > développement back-end > C++ > Comment puis-je écrire du code WinForms à mise à l'échelle automatique qui s'adapte à différents paramètres de DPI et de police ?

Comment puis-je écrire du code WinForms à mise à l'échelle automatique qui s'adapte à différents paramètres de DPI et de police ?

Barbara Streisand
Libérer: 2025-01-19 08:32:09
original
223 Les gens l'ont consulté

How Can I Write Auto-Scaling WinForms Code That Adapts to Different DPI and Font Settings?

Guide de rédaction de code de mise à l'échelle automatique WinForms

Présentation

WinForms ne manque pas de puissantes capacités de mise à l'échelle automatique. .NET 2.0 et les versions ultérieures présentent des améliorations significatives en matière de mise à l'échelle automatique. Cet article explore les directives et limitations de conception pour aider les développeurs à écrire du code WinForms qui s'adapte à diverses polices système et paramètres DPI.

Zoom prend en charge des contrôles limités

Certains contrôles WinForms ont des limitations avec la mise à l'échelle automatique :

    Contrôle
  • Label, si la propriété AutoSize est définie sur False et que la propriété Font est héritée. Veuillez définir explicitement la police en gras dans la fenêtre des propriétés.
  • ListView La largeur de colonne du contrôle. Remplacez la méthode form.ScaleControl pour ajuster la largeur des colonnes.
  • Propriétés
  • SplitContainer Panel1MinSize, Panel2MinSize et SplitterDistance du contrôle.
  • Contrôle
  • TextBox, si la propriété MultiLine est définie sur True et hérite de la propriété Font. Veuillez définir la police explicitement.
  • ToolStripButton Image du contrôle. Manipulez les propriétés ToolStrip.AutoSize et ToolStrip.ImageScalingSize dans le constructeur du formulaire.
  • PictureBox La propriété SizeMode du contrôle doit être définie sur Zoom ou StretchImage.
  • TreeView Image du champ. Ajustez la propriété ImageList.ImageSize en fonction du DPI.
  • Formulaire La taille du contrôle. Redimensionnez manuellement un formulaire de taille fixe après sa création.

Directives de conception à mise à l'échelle automatique

Pour garantir un autoscaling efficace, veuillez suivre ces directives :

  • Définissez AutoScaleMode sur Font : Tous les contrôles de conteneur doivent avoir AutoScaleMode défini sur Font pour s'adapter aux modifications de DPI et de police système.
  • Définissez AutoScaleDimensions : Utilisez AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);, en supposant une police de 96 dpi et MS Sans Serif. Veuillez ajuster ces valeurs en fonction du DPI et de la police sélectionnés.
  • Conception à 96 dpi : Évitez d'appliquer les propriétés Anchor Right ou Bottom directement aux contrôles utilisateur. Veuillez utiliser Panel comme intermédiaire.
  • Gestion des ajouts de contrôles dynamiques : Pour les contrôles ajoutés dynamiquement, suspendez la mise en page, définissez AutoScaleMode et AutoScaleDimensions, puis reprenez la mise en page avant l'ajout.
  • Évitez d'utiliser Form.MaxSize dans le concepteur : Définissez MaxSize de manière dynamique pour éviter les limitations de mise à l'échelle.
  • Utiliser l'ancrage ou l'ancrage : Assurez-vous que tous les contrôles du conteneur utilisent l'ancrage ou l'ancrage pour une mise à l'échelle automatique cohérente.
  • Limiter la taille du formulaire dans le concepteur : Gardez la taille du formulaire du concepteur en dessous de 1 000 x 680 pour une mise à l'échelle optimale avec différents paramètres DPI.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal