Tag Archives: Windows Store

Mabilis at madali: Itakda ang Laki ng isang item sa isang Box List sa isang Windows App Store

Sa isang Windows App Store Lumilikha ako, Nais kong ipakita ang iba't-ibang mga user-kaalamang mga mensahe.  Kinuha ko ang isang ListBox bilang ng tool upang ipakita ito sa gayon ay maaari silang mag-scroll sa pamamagitan ng mga ito at ang lahat na magagandang bagay-bagay. 

Ang mga mensahe ay pang-impormasyon lamang, kaya hindi na kailangan upang magbigay ng lahat na ang dagdag na whitespace nakapaligid sa kanila dahil ang gumagamit ay hindi kailanman maaaring piliin ang mga ito para sa anumang bagay.  Ang default na pag-uugali ng ListBox ay nagbibigay ng isang makabuluhang halaga ng padding at Nais kong upang makakuha ng mapupuksa ito.  Well .... hindi mo maaaring gawin na uri ng mga bagay sa ListBox direkta.  GAANO MAN, maaari mong gawin ito sa mga item idagdag mo:

        pribado walang bisa AddGameStateLogMessage(pisi theMessage)
        {
            Textbox t = bago Textbox();
            t.Text = GameStateCounter     + ": " + theMessage;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            Kapal thisPadding = bago Kapal(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem na = bago ListBoxItem();
            li.Content = t;
            li.MaxHeight = 25;
            thisPadding = bago Kapal(5, 0, 5, 0);
            li.Padding = thisPadding;

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

sa itaas, Lumilikha ako ng isang textbox at ng pagtatakda ng font, padding nito, at iba pa.

Susunod, Ako lilikha ng isang ListBoxItem at itakda ang nilalaman nito sa textbox na-format.

Sa wakas, Ako isingit ang ListBoxItem sa ListBox.  (Nais kong ipakita ang pinaka-kamakailang mensahe sa tuktok ng listahan, kaya ang Ipasok(0,li) sa halip ng isang simpleng Add() pananalangin.).

Ako ay magiging pag-aayos na ito ng kaunti bago ako talagang masaya sa ListBox pag-uugali pero ang pattern na ipinapakita sa itaas ay naging napaka-mabunga.  Sana ibang tao hahanap ito kapaki-pakinabang.

</dulo>

undefinedMag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

Pagse-set ang Taas ng ListboxItems Sa isang ListBox ayon sa programa para sa Windows App Store

I’m working on a windows store application and one of the things I want to do in the app is display a log that shows status messages and other informational tidbits as the user works things. Upang ito ng pagtatapos, Nagdagdag ako ng isang ListBox tulad ng sumusunod:

<ListBox x:Pangalanan ="GameStateLog" HorizontalAlignment ="Gitna" Taas ="221" VerticalAlignment ="Tuktok" Lapad ="499" Padding ="0" FontSize ="10">

 

Ang code sa C # sa populate ang listbox sa runtime ay kasama ang mga linya ng:

GameStateLog.Items.Insert(0, GameStateCounter     + ": Bagong laro ng estado: naghihintay para sa manlalaro 1 pangalan");

This worked out fine enough but the UI showed a crazy amount of padding around the individual messages as they were added. Iyon saysay kapag gusto kong mga end user na magagawang piliin ang mga item na ito ngunit hindi magkaroon ng kahulugan kapag ko lang nais na ipakita ang isang tumatakbo serye ng mga mensahe log - ang mga gumagamit ay hindi piliin ang mga, just view them. Ito ay kakaiba mahirap upang mahanap ang isang madaling paraan upang gawin ito at arguably, the way I found it isn’t necessarily “easy” but I got it working OK. Ang pangunahing pananaw ay nanggaling mula sa pag-post dito (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) from Bob Relyea. Sa halip ng pagdaragdag ng mga string sa koleksyon Item sa ListBox, add ListBoxItems. Sa pamamagitan ng pagdaragdag ng isang string, the ListBox was creating its own ListBoxItem on its own. I wasn’t able to affect anything about that ListBoxItem after the fact. Ang bagong code ay:

        pribado walang bisa AddGameStateLogMessage(pisi theMessage)
        {
            ListBoxItem na = bago ListBoxItem();
            li.Content = theMessage;
            li.MaxHeight = 25;

            Kapal thisPadding = bago Kapal(5, 0, 5, 0);
            li.Padding = thisPadding;

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

 

Here I’m creating ListBoxItem’s and inserting them. Inalis ko ang labis na padding sa pamamagitan ng pagtatakda nito kapal.

Ito ay medyo nababaluktot bilang ko balak na gawin ang ilang mga kulay coding upang i-highlight ang partikular na uri ng mensahe at sa pamamagitan ng pagdaragdag ng direkta ListBoxItems nakuha ko sa estilo sa anong paraan na gusto ko.

Sana ito ay tumutulong sa isang tao!

</dulo>

undefinedMag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin