Silverlight: Y at-il un événement qui se déclenche sur un FrameworkElement avant qu'elle ne soit rendue?

StackOverflow https://stackoverflow.com/questions/967783

Question

Dans notre projet Silverlight 2 nous avons créé une propriété attachée à effectuer sur la volée traduction du texte des propriétés des différents contrôles utilisateur. Pour ce faire, nous accrochons l'événement Loaded du FrameworkElement lorsque la propriété est définie. Lorsque l'événement se déclenche, nous prenons la valeur de la propriété texte existant et d'effectuer des substitutions de chaînes simples sur elle, avant de remplacer la valeur de la propriété avec le texte traduit. Cependant, cela se traduit par le contrôle étant rendus avec le texte non traduit, le texte est rapidement remplacé par la version traduite.

Y at-il un événement autre que nous pouvons accrocher ce serait le feu avant que le contrôle est rendu?

Était-ce utile?

La solution

Je l'ai changé mon code afin qu'il exécute maintenant la traduction dès que le poseur de la propriété attachée est appelée. Il n'y a pas besoin d'attendre la FrameworkElement avoir terminé le chargement, que je peux changer la propriété Text longtemps avant que l'élément est rendu.

Mes premières réflexions sur l'utilisation de l'événement Loaded devaient réduire le temps de démarrage de l'application que par la traduction des contrôles qui étaient visibles à l'écran. Comme il se trouve, je dupliquer une partie des travaux effectués par le moteur d'exécution, comme le moteur d'exécution ne sera pas appeler le poseur de la propriété jusqu'à ce qu'il a besoin de toute façon.

Autres conseils

Je ne suis pas tout à fait sûr, mais pouvez-vous utiliser l'événement LayoutUpdated. Il se déclenche lorsque la commande est redimensionnée et ce (vous pouvez prendre des mesures pour assurer que votre code est exécuté qu'une seule fois.)

Je sais que cela ne semble pas l'événement « droit » pour cela, mais malheureusement Silverlight laisse un peu vous tenant debout là-bas quand il s'agit d'événements.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top