Tag-arkiver: Windows Store

Hurtig og nem: Angive størrelsen på en elementer på en liste i en Windows Store App

I en Windows Store App opretter jeg, Jeg ønsker at vise brugeren forskellige informationsmeddelelser.  Jeg tog en ListBox som redskab til at vise det, så de kan rulle gennem dem og alt det gode ting. 

Beskederne er oplysende kun, så der er ingen grund til at give alt det ekstra blanktegn rundt om dem, da brugeren kan aldrig vælge dem til noget.  Standard opførsel i kontrolelementerne liste indeholder en betydelig mængde af polstring og jeg ønskede at slippe af med den.  Nå.... Du kan ikke gøre slags ting på ListBox direkte.  MEN, Du kan gøre det til de elementer, du tilføjer:

        privat void AddGameStateLogMessage(streng theMessage)
        {
            TextBox t = nye Lærebog();
            t.Text = GameStateCounter    + ": " + theMessage;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            Tykkelse thisPadding = nye Tykkelse(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem li = nye ListBoxItem();
            Li.Indhold = t;
            Li.MaxHeight = 25;
            thisPadding = nye Tykkelse(5, 0, 5, 0);
            Li.Polstring = thisPadding;

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

i ovenstående, Jeg er at oprette en tekstboks og indstille dens skrifttype, dens polstring, osv.

Næste, Jeg oprette en ListBoxItem og sæt dens indhold til den formaterede lærebog.

Endelig, Jeg indsætte ListBoxItem i listefeltet.  (Jeg ønsker at vise de seneste meddelelser øverst i listen, Derfor indsætte(0,Li) i stedet for en simpel tilføje() aktivering.).

Jeg vil tweaking dette, lidt før jeg er virkelig tilfreds med ListBox adfærd men det mønster vist ovenfor har været meget frugtbart.  Forhåbentlig finder en anden det nyttigt.

</slutningen>

undefinedAbonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Indstille højden af ListboxItems i en ListBox programmatisk til Windows Store App

Jeg arbejder på en Vinduer store programmet og en af de ting, jeg ønsker at gøre i app er vist en log, der viser status beskeder og andre informative lækkerier som brugeren arbejder ting. Til dette formål, Jeg har tilføjet en liste som følger:

<ListBox x:Navn ="GameStateLog" HorizontalAlignment ="Center" Højde ="221" VerticalAlignment ="Toppen" Bredde ="499" Polstring ="0" Skriftstørrelse (FontSize) ="10">

 

C#-kode til at udfylde kontrolelementerne liste på runtime blev i lighed med:

GameStateLog.Items.Insert(0, GameStateCounter    + ": Nye spil tilstand: venter på afspilleren 1 Navn");

Det virkede fint nok men UI viste et vanvittigt beløb af polstring omkring de enkelte meddelelser, som de blev tilføjet. Det giver mening, hvis jeg ønsker slutbrugere at vælge disse emner, men ikke giver mening, når jeg ønsker blot at vise en løbende serie af logmeddelelser-brugere vil ikke vælge disse, bare se dem. Det var mærkeligt nok svært at finde en nem måde at gøre dette og velsagtens, den måde, jeg fandt det ikke nødvendigvis "let", men jeg fik det til at virke OK. Den afgørende indsigt kom fra denne udstationering Her (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) fra Bob Relyea. I stedet for at tilføje strenge til samlingen elementer på en liste, Tilføj ListBoxItems. Ved at tilføje en streng, ListBox var at skabe sin egen ListBoxItem på sin egen. Jeg var ikke i stand til at påvirke noget om at ListBoxItem efter faktum. Den nye kode er:

        privat void AddGameStateLogMessage(streng theMessage)
        {
            ListBoxItem li = nye ListBoxItem();
            Li.Indhold = theMessage;
            Li.MaxHeight = 25;

            Tykkelse thisPadding = nye Tykkelse(5, 0, 5, 0);
            Li.Polstring = thisPadding;

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

 

Her jeg opretter Listboxitems og indsætte dem. Jeg fjernet den overskydende polstring ved at angive dens tykkelse.

Dette er temmelig fleksible som jeg agter at gøre nogle farvekodning for at fremhæve bestemte typer af beskeder og ved direkte at ListBoxItems får jeg at style dem jeg vil.

Håb indeværende hjælper nogen!

</slutningen>

undefinedAbonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin