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. Այս նպատակով, Ես ավելացրել է ListBox հետեւյալ:
<ListBox x:Name ="GameStateLog" HorizontalAlignment ="Կենտրոն" Բարձրություն ="221" VerticalAlignment ="Վերեւ" Լայնությունը ="499" Լիցք ="0" FontSize ="10">
The C # կոդը բնակեցնելու նպատակով listbox է Runtime էր երկայնքով տողեր:
GameStateLog.Items.Insert(0, GameStateCounter + ": Նոր խաղ է: սպասում խաղացողի 1 անուն");
This worked out fine enough but the UI showed a crazy amount of padding around the individual messages as they were added. Որ իմաստ, եթե ես ուզում եմ վերջում օգտվողները կարող են ընտրել այդ իրերը, բայց չի իմաստ, երբ ես պարզապես ուզում եմ ցույց տալ անընդմեջ շարք մուտք հաղորդագրություն - օգտվողները չեն ընտրել այդ, just view them. Դա տարօրինակ, դժվար է գտնել հեշտ ճանապարհ դա անել, եւ թերեւս, the way I found it isn’t necessarily “easy” but I got it working OK. Առանցքային ինտուիցիա եկել այս խմբին այստեղ (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) from Bob Relyea. Փոխարենը ավելացնելով տողեր են Նյութերի հավաքածուի վրա: ListBox, add ListBoxItems. Ըստ ավելացնելով տողը, the ListBox was creating its own ListBoxItem on its own. I wasn’t able to affect anything about that ListBoxItem after the fact. Նոր կոդը:
անձնական անվավեր AddGameStateLogMessage(լարային theMessage) { ListBoxItem որ = նոր ListBoxItem(); li.Content = theMessage; li.MaxHeight = 25; Հաստությունը thisPadding = նոր Հաստություն(5, 0, 5, 0); li.Padding = thisPadding; GameStateLog.Items.Insert(0,li); }
Here I’m creating ListBoxItem’s and inserting them. Ես հանել ավելցուկային լիցք ընդլայնված դրա հաստությունը.
Սա բավականին ճկուն է, քանի որ ես չեմ պատրաստվում անել ինչ - որ գույն կոդավորման կարեւորում որոշակի տեսակի հաղորդագրությունների եւ ուղղակիորեն ավելացնելով ListBoxItems եմ ոճը, նրանց որեւէ կերպ ուզում.
Hope this helps մեկին!
</վերջ>
Գտեք Twitter-ում http://www.twitter.com/pagalvin