2009-11-05 5 views
0

J'essaie d'obtenir la taille de rendu d'une région via le gestionnaire de région. La raison en est que chaque fois que j'ajoute une vue à la région, je veux m'assurer qu'elle correspondra visuellement, je peux obtenir les dimensions de la vue que je vais ajouter mais j'ai du mal à trouver un moyen d'obtenir la hauteur la région que je suis sur le point d'ajouter.Silverlight PRISM obtenant le rendu d'une région

Évidemment, je veux rester loin de la vue derrière le code et accéder directement à l'UIElement pour la région.

Des idées?

Merci pour votre temps

Répondre

-1

Vous pouvez utiliser

_regionManager.Regions[regionName].Views.ElementAtOrDefault(0); 

pour obtenir la vue actuelle de la région que vous souhaitez utiliser. Ensuite, vous pouvez vérifier la propriété DesiredSize de cette vue pour voir quelle est la largeur probable et la hauteur de cette région. Je pense que cela devrait fonctionner normalement.

Le fait est qu'il doit toujours y avoir une vue dans cette région. Si ce n'est pas le cas, vous pouvez utiliser une vue factice.

+0

Merci, thats à peu près ce que je avais besoin, pour une raison quelconque, je n'ont pas la méthode ElementAtOrDefault disponible. Ce que je faisais était à chaque fois une nouvelle vue est créée, écouter son événement chargé et fait ensuite la taille de la vue ajoutée si son le premier à ajouter – Suiva

+0

Ce qui ne fonctionne pas à la recherche, il cause de fait, je peux seulement obtenir la taille de la vue à ajouter, pas la zone de la région entière. – Suiva

+0

ElementAtOrDefault est une méthode d'extension linq. Si vous ajoutez "using System.Linq;" à vos utilisations, cela devrait fonctionner. – RonaldV

0

Je recommande de ne pas essayer de le faire du tout. Au lieu de cela, je me concentrerais sur rendre la région adaptable à être trop rempli (redimensionnement automatique, défilement, onglets, etc).

Il y a beaucoup de choses imprévisibles qui peuvent arriver ici. Par exemple, il existe certains contrôles dont les vues sont déterminées par leur conteneur. La taille réelle de la vue que vous souhaitez ajouter à la région ne sera pas connu jusqu'à ce qu'il soit effectivement ajouté à la région, rendant cette décision sera non négligeable.

Je sais que cela ne répond pas directement à votre question, mais j'espère que ce sera utile malgré tout.

Questions connexes