Mga Archive ng kategorya: XAML

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