Kategoriarkiv: XAML

Angi høyden på ListboxItems i en liste programmatisk for Windows forretning App

Jeg jobber med en windows-butikk-program og en av tingene jeg ønsker å gjøre i programmet er å vise en logg som viser statusmeldinger og andre informativ ting som brukeren arbeider ting. Dette, Jeg har lagt en liste som følger:

<ListBox x:Navnet ="GameStateLog" HorizontalAlignment ="Center" Høyde ="221" VerticalAlignment ="Toppen" Bredde ="499" Polstring ="0" FontSize ="10">

 

C#-kode til å fylle ut liste under kjøring var langs linjene av:

GameStateLog.Items.Insert(0, GameStateCounter    + ": Nye spillet staten: venter på spilleren 1 navn");

Dette virket helt fint nok men UI viste en gal mengde utfylling rundt den enkelte meldinger som de ble lagt til. Det er fornuftig hvis jeg sluttbrukerne skal kunne velge men ikke gir mening når jeg vil bare vise en løpende serie med loggmeldingene-brukere vil merke dette, bare se dem. Det var merkelig vanskelig å finne en enkel måte å gjøre dette og kanskje, måten jeg fant det er ikke nødvendigvis "lett", men jeg fikk den arbeider OK. Viktig innsikt kom fra dette oppslaget her (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) fra Bob Relyea. I stedet for strenger å elementsamlingen på liste, legge til ListBoxItems. Ved å legge til en streng, Listen var å skape sin egen ListBoxItem på egen hånd. Jeg var ikke i stand til å påvirke noe om at ListBoxItem i ettertid. Den nye koden er:

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

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

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

 

Her jeg oppretter Listboxitems og sette dem. Jeg fjernet overflødig utfyllingen ved å angi tykkelse.

Dette er ganske fleksibel som jeg har tenkt å gjøre noen fargekoding for å utheve bestemte typer meldinger og direkte legge ListBoxItems jeg kommer til stil dem slik jeg ønsker.

Håpe dette hjelper noen!

</slutten>

undefinedAbonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin