Tag Archives: Windows Store

Facile et rapide: Définir la taille d'un éléments dans une zone de liste dans une application Windows Store

Je crée dans une application Windows Store..., Je veux montrer à l'utilisateur des messages d'information diverses.  J'ai pris un ListBox comme outil pour le montrer afin qu'ils peuvent défiler à travers eux et tout ce que de bonnes choses. 

Les messages sont uniquement à but informations, Il n'y a donc pas lieu de prévoir tout ce supplément espace blanc autour d'eux car l'utilisateur peut les sélectionner jamais pour quoi que ce soit.  Le comportement par défaut du contrôle ListBox fournit une quantité importante de rembourrage et je voulais me débarrasser de celui-ci.  Eh bien.... vous ne pouvez pas faire ce genre de chose sur la zone de liste directement.  CEPENDANT, vous pouvez le faire pour les éléments que vous ajouter:

        privé VOID AddGameStateLogMessage(chaîne Lemessage)
        {
            TextBox t = Nouveau TextBox();
            t.Text = GameStateCounter    + ": " + Lemessage;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            Épaisseur thisPadding = Nouveau Épaisseur(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem li = Nouveau ListBoxItem();
            néantContent = t;
            Li.MaxHeight = 25;
            thisPadding = Nouveau Épaisseur(5, 0, 5, 0);
            Li.Rembourrage = thisPadding;

            GameStateLog.Items.Insert(0,Li);
        }

dans ce qui précède, Je suis créant une zone de texte et en définissant ses polices, son rembourrage, etc..

Prochaine, J'ai créer un ListBoxItem et définissez son contenu à la zone de texte mis en forme.

Enfin, J'insère le ListBoxItem dans le ListBox.  (Je veux montrer les messages plus récents en haut de la liste, C'est pourquoi l'Insert(0,Li) au lieu d'un simple Add() invocation.).

Je va être peaufiner cela un peu avant que je suis vraiment heureux avec le comportement du contrôle ListBox, mais le modèle illustré ci-dessus a été très fructueux.  J'espère que quelqu'un d'autre estime qu'il est utile.

</fin>

undefinedS'abonner à mon blog.

Me suivre sur Twitter à http://www.twitter.com/pagalvin

Paramètre la hauteur de ListboxItems dans une zone de liste par programme pour App Store de Windows

Je travaille sur une application de windows store et une des choses que je veux faire dans le soft est un journal qui affiche les messages d'État et autres bribes d'information que l'utilisateur travaille choses d'affichage. À cette fin, J'ai ajouté un ListBox comme suit:

<ListBox x:Nom ="GameStateLog" HorizontalAlignment ="Centre" Hauteur ="221" VerticalAlignment ="Retour au début" Largeur ="499" Rembourrage ="0" FontSize ="10">

 

Le code c# pour remplir la zone de liste lors de l'exécution a été le long des lignes de:

GameStateLog.Items.Insert(0, GameStateCounter    + ": Nouveau jeu de l'État: attente pour joueur 1 nom");

Cela a fonctionné très bien, assez, mais l'interface utilisateur a montré une quantité folle de rembourrage autour des messages individuels, ils ont été ajoutés. C'est logique, si je veux des utilisateurs finaux pour pouvoir sélectionner ces éléments, mais ne fait pas de sens quand je veux juste montrer une série de messages du journal-les utilisateurs ne sélectionnent ces, Tout afficher. Il était étrangement difficile de trouver un moyen facile de le faire et sans doute, la façon dont je l'ai trouvé n'est pas nécessairement « facile », mais j'ai eu fonctionne OK. L'idée clée provenait de cette annonce ici (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) de Bob Relyea. Au lieu d'ajouter des chaînes à la collection d'éléments dans ListBox, Ajouter ListBoxItems. En ajoutant une chaîne, la zone de liste créait sa propre ListBoxItem sur ses propres. Je n'étais pas en mesure d'affecter quelque chose que ListBoxItem après coup. Le nouveau code est:

        privé VOID AddGameStateLogMessage(chaîne Lemessage)
        {
            ListBoxItem li = Nouveau ListBoxItem();
            Li.Content = lemessage;
            Li.MaxHeight = 25;

            Épaisseur thisPadding = Nouveau Épaisseur(5, 0, 5, 0);
            Li.Rembourrage = thisPadding;

            GameStateLog.Items.Insert(0,Li);
        }

 

Ici je suis la création de ListBoxItem et en les insérant. J'ai enlevé le rembourrage excès en définissant son épaisseur.

C'est assez souple car je ne veux pas faire quelque codage en couleurs pour mettre en évidence certains types de messages et en ajoutant directement ListBoxItems, j'arrive à leur style tout comme je le veux.

Espérons que cela aide quelqu'un!

</fin>

undefinedS'abonner à mon blog.

Me suivre sur Twitter à http://www.twitter.com/pagalvin