marcatori archivi: Windows Store

Facile e veloce: Impostare la dimensione di un elementi in una casella di riepilogo in un App Store di Windows

Sto creando in un'App di Windows Store, Voglio mostrare all'utente messaggi informativi vari.  Ho preso una ListBox come lo strumento per mostrarlo in modo che essi possono scorrere roba loro e tutto ciò che di buono. 

I messaggi sono solo informativi, quindi non è necessario per fornire supplementare tutto quello spazio vuoto intorno a loro, poiché l'utente non può selezionare mai per nulla.  Il comportamento predefinito del controllo ListBox fornisce una notevole quantità di imbottitura e ho voluto sbarazzarsi di esso.  Beh.... non si può fare cose del genere su ListBox direttamente.  TUTTAVIA, si può fare per gli elementi che si aggiungono:

        privato void AddGameStateLogMessage(stringa Strumento)
        {
            TextBox t = Nuovo TextBox();
            t.Text = GameStateCounter     + ": " + Strumento;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            Spessore thisPadding = Nuovo Spessore(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem li = Nuovo ListBoxItem();
            li.Contenuto = t;
            li.MaxHeight = 25;
            thisPadding = Nuovo Spessore(5, 0, 5, 0);
            li.Imbottitura = thisPadding;

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

in precedenza, Sto creando una casella di testo e impostare il tipo di carattere, sua imbottitura, ecc.

Successivo, Creo un oggetto ListBoxItem e impostarne il contenuto nella casella di testo formattato.

Infine, Inserire l'oggetto ListBoxItem in ListBox.  (Voglio mostrare i messaggi più recenti in cima alla lista, da qui l'inserto(0,li) invece di un semplice Add() invocazione.).

Sarà essere tweaking questo un po ' prima che io sono davvero felice con il comportamento del controllo ListBox, ma il modello sopra indicato è stato molto proficuo.  Speriamo che qualcun altro lo trova utile.

</fine>

undefinedIscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin

Regolazione dell'altezza di ListBoxItem In un controllo ListBox a livello di codice per App Store di Windows

Sto lavorando su un'applicazione di windows store e una delle cose che voglio fare in app è visualizzare un log che mostra i messaggi di stato e altri interessanti siti informativi, come l'utente lavora le cose. A tal fine, Ho aggiunto un controllo ListBox come segue:

<ListBox x:Nome ="GameStateLog" HorizontalAlignment ="Centro" Altezza ="221" VerticalAlignment ="In alto" Larghezza ="499" Imbottitura ="0" FontSize ="10">

 

Il codice c# per compilare l'oggetto listbox in fase di esecuzione è stato lungo le linee di:

GameStateLog.Items.Insert(0, GameStateCounter     + ": Nuovo gioco di stato: in attesa di giocatore 1 nome");

Questo ha funzionato bene abbastanza, ma l'interfaccia utente ha mostrato una quantità pazzesca di imbottitura intorno i singoli messaggi che sono stati aggiunti. Questo ha un senso se desidera che gli utenti finali siano in grado di selezionare questi elementi, ma non ha senso quando voglio solo mostrare una serie di messaggi di log corrente – gli utenti non selezionare questi, solo visualizzarli. Era stranamente difficile di trovare un modo semplice per fare questo e probabilmente, il modo che ho trovato non è necessariamente "facile", ma ho avuto lavoro OK. La comprensione chiave è venuto da questo distacco qui (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) da Bob Relyea. Invece di aggiungere stringhe alla raccolta di articoli su ListBox, aggiungere ListBoxItem. Aggiungendo una stringa, ListBox stava creando un oggetto ListBoxItem in proprio. Non ero in grado di incidere nulla su quel ListBoxItem dopo il fatto. Il nuovo codice è:

        privato void AddGameStateLogMessage(stringa Strumento)
        {
            ListBoxItem li = Nuovo ListBoxItem();
            li.Contenuto = strumento;
            li.MaxHeight = 25;

            Spessore thisPadding = Nuovo Spessore(5, 0, 5, 0);
            li.Imbottitura = thisPadding;

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

 

Qui sto creando di ListBoxItem e inserendole. Ho rimosso l'imbottitura in eccesso impostando il suo spessore.

Questo è abbastanza flessibile, come intendo fare qualche colore codifica per evidenziare particolari tipi di messaggi e aggiungendo direttamente ListBoxItem arriva al loro stile qualsiasi modo desiderato.

Spero che questo aiuti qualcuno!

</fine>

undefinedIscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin