2015-09-24 2 views
0

Je me réfère à la vue de conception de Visual Studio. Lorsque vous ajoutez une étiquette à l'aide de l'infrastructure .NET complète, les contrôles System.Windows.Forms.Label ont une propriété AutoSize définie sur True par défaut. Si je dépose un contrôle Label sur un formulaire, la police par défaut est "Microsoft Sans Serif, 12pt, Régulier" et la hauteur du contrôle est 20. Changez la police pour (par exemple) "Tahoma, 14pt, Gras" et la hauteur automatiquement passe à 23. Amende. Mais dans la CF (Compact-Framework), les contrôles Label ne possèdent pas la propriété AutoSize. Quand je change la police comme décrit ci-dessus la taille du Label ne change pas (restant à 20) et une partie du texte est découpée).Taille au moment du design de Label (Compact Framework)

Ma question est: à court d'ouvrir un projet .NET complet et tester ma sélection de la police, est-il un moyen de savoir quelle hauteur pour régler mon Label au moment de la conception?

Répondre

2

Vous pouvez utiliser l'objet graphique pour mesurer la hauteur de la chaîne, par exemple en cas Paint ou OnPaint méthode:

Graphics g = e.Graphics; 
float lineHeight = g.MeasureString(this.Text, this.Font).Height; 

il peut être utilisé dans l'étiquette héritée. Par exemple, vous pouvez remplacer la méthode OnPaint ou ailleurs et le faire, puis il sera exécuté au moment du design.

Plus de ressources:

+0

C'est génial (et quelque chose que j'utilise déjà) mais c'est une vérification de l'exécution. Ma question concerne la taille de l'étiquette au moment du design (c'est-à-dire les propriétés du contrôle dans le concepteur Visual Studio). – AlainD

+0

@AlainD Je pense qu'il peut être utilisé dans l'étiquette héritée. par exemple, vous pouvez remplacer la méthode 'OnPaint' et le faire. alors il fonctionnera en design-time. –

+1

@AlainD Aslo vous pouvez jeter un oeil à [Multi-Line Graphics.MeasureString sur .Net CF] (http://www.mobilepractices.com/2007/12/multi-line-graphicsmeasurestring.html) –