10
votes

Panneau de pile ou grille que l'on est plus conseillé

J'ai entendu dire que la conception de l'interface utilisateur avec un panneau de pile est plus promettable que les grilles. Y a-t-il un fait présent dans cela. J'utilise généralement la grille pour concevoir mon UI, récemment dans un document que j'ai lu que la grille consomme plus de temps pour le rendu plutôt que sur le panneau de pile ;; Je suis donc très confus à ce sujet .. S'il vous plaît, donnez-moi plus d'informations à ce sujet .. Développement WP7)


0 commentaires

6 Réponses :


17
votes

dans un grille , les éléments peuvent être positionnés de manière relativement à l'autre, sans se déplacer généralement (si le développeur veut le faire). Un grille n'applique pas de positionnement spécifique sauf spécification explicitement. Dans un StackPanel Les commandes sont évidemment empilées. Donc, si dans une grille , vous ajouteriez deux commandes dans une seule séquence, celles-ci se chevauchent. Dans un StackPanel , les commandes seront placées les une après l'autre, que ce soit horizontalement ou verticalement.

Généralement, il n'y a pas de surcharge de performance lorsqu'il s'agit de choisir entre grille ou stackpanel . Un avantage du contrôle est qu'il est possible de définir explicitement des lignes et des colonnes, ce qui entraîne finalement la possibilité de créer des mises en page plus complexes. Chacun a sa place et ne sont généralement pas interchangeables.


1 commentaires

Il y a une différence de performance entre ces deux, ceci: Stackoverflow.com/a/9996707/302677 explique qu'en détail.



4
votes

La grille et StackPanel ont chacun leur place, cela dépend de vos exigences de l'UI. On dirait que vous optimisez prématurément.

Je voudrais mettre en œuvre le panel qui convient le mieux à la nécessité, puis vous inquiétez de la performance plus tard, s'il s'agit d'un problème.


0 commentaires

2
votes

Parler de l'expérience récente, une liste de liste est la meilleure classe de conteneurs à utiliser. L'avantage principal est la vitesse car elle utilise un panneau de pile virtualisateur en interne.

J'ai essayé à la fois une grille et un panneau de pile et les deux prenaient 25 secondes pour afficher 60 contrôles utilisateur. Ceci est tombé à 10 secondes après que je suis passé à la liste de liste.

Si vous aviez besoin du positionnement supplémentaire, utilisez une grille à l'intérieur de chaque modèle d'élément de liste.


2 commentaires

C'est certainement une overkill pour la plupart des applications simples qui n'ont pas besoin de 60 contrôles dans une seule grille.


Dépend où vous vous dirigez. Pour une application rapide et sale, je suis d'accord. Pour construire un cadre à utiliser par de nombreuses applications, je suis en désaccord. Une fois que vous avez trouvé quelque chose qui fonctionne et qui échoue bien, cela paie des dividendes pour s'appuyer sur cette technique. Quelque chose qui a 5 contrôles aujourd'hui et fonctionne bien peut avoir 15 contrôles dans une période d'une année. La structure de la page commune conduit également à des classes utilitaires et aux aides utiles utiles.



2
votes

Je voulais juste commenter Stevechadbourne, mais je ne sais pas comment le faire.

voir http://www.codeproject.com/kb/showcase/wp7 -Performance.aspx (MonthCalendar) Pour un exemple de grille avec 126 éléments chargés dans environ 2 secondes. Si vous dites que vos 60 commandes se charge dans 25 secondes, ce n'est pas la question du conteneur utilisé, mais de vos commandes.

Dans ce cas, bien sûr, la virtualisation de l'UI aide. Mais en général, il ne devrait y avoir aucune différence importante entre la grille et StackPanel. La grille doit être un peu plus lente, mais la différence ne sera pas mesurable.

Il existe des choses plus importantes pour optimiser - les modèles, les liaisons, etc. L'article mentionné ci-dessus décrit les étapes d'optimisation qui ont ensuite entraîné une commande de 8 mois plus rapide. Les programmeurs utilisent pour être surpris à quel point les outils avancés Silverlight sont inefficaces.


0 commentaires

1
votes

grille a la possibilité de spécifier l'index de la ligne ou de la colonne afin que les éléments puissent être commandés en conséquence.so Si vous avez besoin de plus de personnalisation sur vos éléments de page, accédez à la grille.authermètre pile est suffisant.Grid a des définitions de lignes et des définitions de colonne Donc, il a plus d'objets que Stack Panel.Up à mes tests, je n'ai vu aucune différence de performance pouvant être visible pour mettre fin à l'utilisateur


0 commentaires

0
votes

grille et stackpanel sont des conteneurs afin qu'ils contiennent plusieurs articles pour enfants. La différence est la façon dont ils contiennent des éléments.

Les éléments de la grille sont stockés sous forme de matrice ou vous pouvez dire une forme tabulaire. Vous pouvez définir des colonnes et des rowdéfinitions et vous pouvez accéder à l'élément à une rangée et à une colonne particulières.

Mais dans StackPanel, les éléments sont stockés dans le format de pile .i.e. un après autre. Donc, il peut être vertical ou horizontal.

Ainsi en fonction de vos besoins, vous pouvez créer la plupart de ces exigences.


2 commentaires

C'était une question assez ancienne. Mais merci pour votre point de vue :) \


C'est juste que je suis nouveau à WPF: p