Nastavení výšky ListboxItems v poli se seznamem pro Windows Store App

Já jsem pracoval na aplikace windows store a je jedna z věcí, které chci udělat v aplikaci zobrazit protokol, který zobrazuje stavové zprávy a další informační tidbits, jak uživatel pracuje věci. Za tímto účelem, Přidala jsem takto ListBox:

<ListBox x:Jméno ="GameStateLog" HorizontalAlignment ="Centrum" Výška ="221" VerticalAlignment ="Nahoru" Šířka ="499" Padding ="0" Velikost písma ="10">

 

Kód jazyka C# k naplnění seznamu za běhu byl po vzoru:

GameStateLog.Items.Insert(0, GameStateCounter    + ": Nová hra stát: čeká na hráče 1 Jméno");

To dopadlo dobře dost ale UI ukázala šílené množství výplně kolem jednotlivých zpráv, jak byly přidány. To dává smysl, je-li, aby koncoví uživatelé mohli vybrat tyto položky, ale nemá smysl, když chci jen Ukázat běžící sérii zpráv protokolu – uživatelé nebudou vybírat tyto, pouze zobrazit. Bylo to kupodivu těžké najít jednoduchý způsob, jak to udělat a pravděpodobně, způsob, jak jsem zjistil, že není nutně "snadné", ale mám to funguje OK. Klíčovým postřehem přišla od tohoto účtování Tady (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) od Bob Relyea. Namísto přidávání řetězců do kolekce položek v seznamu, Přidat ListBoxItems. Přidáním řetězce, ListBox vytvářel vlastní ListBoxItem o sobě. Nebyl jsem schopen ovlivnit nic o tomto ListBoxItem po faktu. Nový kód je:

        soukromé void AddGameStateLogMessage(řetězec theMessage)
        {
            ListBoxItem li = nové ListBoxItem();
            li.Obsah = theMessage;
            li.MaxHeight = 25;

            Tloušťka thisPadding = nové Tloušťka(5, 0, 5, 0);
            li.Padding = thisPadding;

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

 

Zde vytvářím si ListBoxItem a jejich vkládání. Jsem odstranil přebytečný odsazení nastavením jeho tloušťka.

To je velmi flexibilní, jak hodlám udělat nějaké barevné kódování pro zvýraznění určité typy zpráv a přidáním přímo ListBoxItems mám styl je požadovaným způsobem.

Doufám, že to pomůže někdo!

</Konec>

undefinedPřihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Zanech odpověď

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *