2016-01-28 3 views
0

J'ai une application Windows Phone 8.1 avec une page de préférences utilisateur. Il y a un sélecteur de couleurs sur cette page qui est initialement "réduit" jusqu'à ce que l'utilisateur appuie sur une partie de la page. Quand ils le font, il faut environ 3 secondes à XAML pour construire le sélecteur de couleur (140 petits blocs de texte colorés liés à une liste). L'utilisateur voit un délai de 3 secondes la première fois qu'il appuie sur le contrôle. Une fois rendu, revenir à ce sélecteur de couleur une seconde fois (tant que la page est restée ouverte) est instantané.Pré-compilez le code XAML au démarrage de l'application (ou à On navigué vers)?

Fondamentalement, j'ai une page XAML vraiment compliquée avec des centaines et des centaines de Textboxes et je veux la pré-construire ainsi il n'y a aucun délai quand je veux l'afficher.

Y a-t-il un moyen de dire à XAML ou à mon code-behind de pré-compiler le sélecteur de couleur afin qu'il soit prêt à afficher si et quand l'utilisateur tape sur la boîte pour le montrer?

J'ai vu la réponse à une question similaire à: How to preload XAML at app startup? et je ne comprends pas, ou même de savoir si elle s'applique à moi.

+0

Si cela prend si longtemps, juste pour cela. Vous faites de mauvaises pratiques dans votre front-end mon ami. Je me demande ce que le temps d'attente est juste pour ouvrir l'application elle-même. Je suggérerais fortement un refactor .... mais si vous vouliez vraiment une solution de contournement relativement simple (quoique imo sale et pas une solution) plop le contenu dans un viewbox ou le déplacez hors de vue au lieu de basculer la visibilité pour obtenir votre effet de montrer. Sinon, vous allez avoir beaucoup de travail à faire avec measure(), arrange(), updatelayout(), etc. Juste mes deux cents. –

Répondre

0

La question à laquelle vous faites référence a une réponse à votre problème. Si vous avez besoin de charger autant d'éléments, vous pouvez utiliser cette approche. La seule chose que vous devez garder à l'esprit est que si l'utilisateur appuie sur pour rendre le sélecteur de couleur visible avant qu'il ne soit complètement chargé, il ne sera pas prêt et un délai sera affiché.

+0

en référence à l'article XAML ... _ précharge ci-dessus, que signifient "fil de travail" et "fil de l'interface utilisateur" dans le contexte de Windows Phone? Je pensais que le téléphone avait seulement un premier plan et un fil de fond. – LionelGoulet

+0

Le thread UI est votre vue affichée à l'utilisateur et le thread de travail est une sorte de thread d'arrière-plan que vous pouvez utiliser. Pour charger des éléments, vous pouvez utiliser le pool de threads. Pour en savoir plus [vérifiez ce lien officiel microsoft.] (Https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh465290) – Rohit