Estic treballant en una aplicació de windows botiga i una de les coses que vull fer en l'app és mostrar un registre que Mostra els missatges d'estat i altres delícies informatius com l'usuari treballa coses. Amb aquesta finalitat, He afegit un quadre de llista els següents:
<Quadre de llista x:Nom ="GameStateLog" HorizontalAlignment ="Centre" Alçada ="221" VerticalAlignment ="Part superior" Amplada ="499" Embuatat ="0" Grandària de font ="10">
El codi de c# per emplenar el quadre de llista al temps d'execució va en la línia de:
GameStateLog.Items.Insert(0, GameStateCounter + ": Nou estat de joc: a l'espera per a l'intèrpret 1 nom");
Això funcionava de Belles prou però l'UI va mostrar una quantitat boja de rebliment als voltants els missatges individuals com els que es van afegir. Això té sentit si voleu que els usuaris finals puguin seleccionar aquests elements, però no té sentit quan només vull mostrar una sèrie de missatges de registre corrent-els usuaris no seleccionar aquestes, només veure'ls. Era estranyament difícil de trobar una manera fàcil de fer això i possiblement, el camí que trobava no és necessàriament "fàcil" però aconseguia treballant correcte. La idea clau venia d'aquest anunci aquí (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) de Bob Relyea. En comptes d'afegir les cordes a la col·lecció d'elements en el quadre de llista, afegir ListBoxItems. Afegint una corda, el quadre de llista va anar creant un ListBoxItem en el seu propi. No podia afectar res sobre aquest ListBoxItem després del fet. El nou codi és:
privat buit AddGameStateLogMessage(corda theMessage) { ListBoxItem li = nou ListBoxItem(); li.Contingut = theMessage; li.MaxHeight = 25; Gruix thisPadding = nou Gruix(5, 0, 5, 0); li.Embuatat = thisPadding; GameStateLog.Items.Insert(0,li); }
Aquí estic creant de ListBoxItem i la inserció. Treia el farciment excés posant el seu gruix.
Això és força flexible, ja que tinc la intenció de fer una mica de color de codificació per posar de relleu tipus particulars de missatges i afegint directament ListBoxItems arribo a l'estil d'ells com que jo vulgui.
Espero que això ajudi a algú!
</final>
Follow me on Twitter http://www.twitter.com/pagalvin