2010-03-28 3 views
3

J'implémente un contrôle personnalisé avec des étiquettes et j'ai besoin de mesurer la taille de ces étiquettes pour avoir une disposition optimale. De cette façon, je peux montrer correctement le contrôle pour chaque police et taille de police.
Pourriez-vous me dire comment je peux faire cela, s'il vous plaît?
Merci.Mesure de la taille de l'étiquette

Répondre

2

La bonne façon de taille et organiser votre contrôle personnalisé en fonction de la taille de ses sous-éléments est de passer outre MeasureOverride et ArrangeOverride.

Voir les liens pour plus de détails, mais en quelques mots, votre contrôle est censé (en MeasureOverride):

  1. appel UIElement.Measure sur tous les enfants (qui comprendra vos étiquettes), qui renverra la taille que chacun de vos enfants aimeraient avoir,
  2. calculer votre taille désirée et
  3. retour cette taille au cadre (en utilisant comme valeur de retour de MeasureOverride).

Ensuite, à ArrangeOverride, vous obtenez la taille allouée à votre contrôle par le cadre en tant que paramètre et vous

  1. déterminer à quel point de l'espace que vous souhaitez allouer à chacun de vos éléments enfants et
  2. appelez UIElement.Arrange sur chaque élément enfant.
0

vous pouvez consulter ev.Graphics.MeasureString (str, police)

Questions connexes