2011-12-16 1 views
2

Évidemment j'espère que la réponse à ceci est "non, il ne sera pas rendu." La raison pour laquelle je demande est que ma base de code dont j'ai hérité est assez grande et utilise d'énormes blocs de mémoire. Je ne sais toujours pas ce qui cause le problème.Les objets/effets sont-ils rendus lorsqu'ils ne sont pas visibles dans Silverlight?

Je regardais récemment l'héritage du template pour les items car il y a un template par défaut pour la plupart des contrôles habituels. Les boîtes de texte, les boutons, etc. ont tous des modèles par défaut qui ont été copiés/collés les uns des autres pour la plupart. Le problème avec ceci est que l'original a été fait dans Expression Blend et je me suis retrouvé avec un tas de paramètres qui ne causent aucun changement. Ma question est qu'il y a certains effets graphiques étant définis dans le modèle derrière ces objets qui apparaissent partout qui ne font rien visuellement mais qui sont encore réglés. L'un d'entre eux est un dégradé en arrière-plan, mais il y en a d'autres. Cela pourrait-il contribuer à l'utilisation de la mémoire? A condition que ce soit de très petites choses, mais je sais que de certains débogages, j'ai fait son chargement à peu près tout dès le départ. Toutes les pages ont au moins ce qu'elles ont pu traiter, traiter. Je ne sais pas comment cela se fait, mais en ce qui concerne mon projet, ils existent et doivent être maintenus.

Répondre

0

Les contrôles Silverlight ne prennent généralement pas en charge la virtualisation de l'interface utilisateur (qui est le terme officiel de ce que vous décrivez).

voir: http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingstackpanel.aspx

Certains le font bien. DataGrid ne pas par exemple. Si cela ne vous aide pas, veuillez fournir plus d'informations sur les contrôles que vous utilisez. Pour résumer: cela dépend du conteneur. En résumé:

Une autre chose que vous pouvez essayer de mettre en œuvre ceci: http://kent-boogaart.com/blog/virtual-paging-in-silverlight

+0

Je suis 99% qu'il n'y a pas nettement marqués conteneurs Virtualisation utilisés. Son Stackpanel, grille, Canvas, itemscontrol, frontière, etc Je suis également un peu inquiet de les mettre en œuvre à grande échelle depuis que j'ai eu un cas où la virtualisation pour un produit Telerik a brisé la fonctionnalité. Ce qui est le plus susceptible de se produire est qu'il existe une définition pour un dégradé, elle est partout et se trouve dans la définition de l'arrière-plan du modèle (disons un modèle de bouton). Ce n'est pas tellement que mes trucs sont les uns sur les autres, c'est comme si j'avais une bordure avec un fond mais je remplissais aussi le contenu – StephenT

Questions connexes