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

Laisser une réponse

Votre adresse email ne sera pas publiée. les champs requis sont indiqués *