Tag Archives: Botiga de Windows

Ràpid i fàcil: Posar la mida d'un elements en una caixa de llista en un App de botiga de Windows

En un Windows Botiga App estic creant, Vull mostrar l'usuari diversos missatges informatius.  Triava un ListBox com a eina per mostrar-lo per tal que es pot moure a través d'ells i tota aquella bona matèria. 

Els missatges són informatius només, Així que no hi ha necessitat de donar tot el que addicional espai en blanc al seu voltant ja que l'usuari mai no pot seleccionar-los per qualsevol cosa.  El comportament d'omissió de la ListBox proporciona una quantitat substancial de farciment i volia desfer-se d'ella.  Bé.... es pot fer aquest tipus de coses en el quadre de llista directament.  NO OBSTANT AIXÒ, vostè pot fer-ho amb els elements que afegiu:

        privat buit AddGameStateLogMessage(corda theMessage)
        {
            Quadre de text t = nou Quadre de text();
            t.Text = GameStateCounter     + ": " + theMessage;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            Gruix thisPadding = nou Gruix(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem li = nou ListBoxItem();
            li.Contingut = t;
            li.MaxHeight = 25;
            thisPadding = nou Gruix(5, 0, 5, 0);
            li.Embuatat = thisPadding;

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

en l'anterior, Estic creant un quadre de text i establir el tipus de lletra, seu farciment, etc.

Següent, Vaig crear un ListBoxItem i posi el seu contingut al quadre de text amb format.

Finalment, Introdueixo el ListBoxItem en el quadre de llista.  (Vull mostrar missatges més recents a la part superior de la llista, per tant, la inserció(0,li) en comptes d'un simple afegir() invocació.).

Jo es estar retocant això una mica abans que estic molt content amb el comportament ListBox però el patró mostrat a dalt ha estat molt fructífera.  Esperem que algú altre li resulta útil.

</final>

undefinedSubscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Establir l'altura de ListboxItems en un ListBox mitjançant programació per a l'App Store de Windows

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>

undefinedSubscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin