Tag Archives: Windows Store

Rychlé a snadné: Nastavení velikosti položky v rozevíracím seznamu v aplikaci Windows Store

V Windows Store App jsem vytvořit, Chci Ukázat uživateli různé informační zprávy.  Vybral jsem ListBox jako nástroj zobrazíte tak, že mohou procházet ně a že všechny dobré věci. 

Zprávy jsou pouze informativní, Takže není třeba poskytnout všechny další mezery kolem nich, vzhledem k tomu, že uživatel nikdy nemůže vyberte pro cokoliv.  Výchozí chování ListBox poskytuje značné množství výplně a chtěl jsem se ho zbavit.  Dobře.... Nemůžeš dělat takové věci na ListBox přímo.  NICMÉNĚ, Můžete to udělat na přidané položky:

        soukromé void AddGameStateLogMessage(řetězec theMessage)
        {
            Textové pole t = nové Textové pole();
            t.Text = GameStateCounter    + ": " + theMessage;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            Tloušťka thisPadding = nové Tloušťka(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem li = nové ListBoxItem();
            li.Obsah = t;
            li.MaxHeight = 25;
            thisPadding = nové Tloušťka(5, 0, 5, 0);
            li.Padding = thisPadding;

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

ve výše, Já jsem vytvořit textové pole a nastavení jeho písmo, jeho výplň, atd.

Další, Vytvořit ListBoxItem a nastavte jeho obsah na formátované textové pole.

Konečně, Do seznamu vložit ListBoxItem.  (Chci zobrazit nejnovější zprávy v horní části seznamu, Proto Insert(0,li) namísto jednoduché přidat() vyvolání.).

Bude se to ladění, trochu, než jsem opravdu spokojený s chování ListBox, ale vzoru uvedeno výše bylo velmi plodné.  Doufejme, že někdo považuje za užitečné.

</Konec>

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

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

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