Я працюю над windows store застосування і одна з речей, які я хочу зробити у програмі відобразити журнал, який показує повідомлення про стан та інші інформаційні пікантні, як користувач працює речей. З цією метою, Я додав до списку наступним чином:
<Список x:Ім'я ="GameStateLog" HorizontalAlignment ="Центр" Висота ="221" VerticalAlignment ="Топ" Ширина ="499" Оббивка ="0" FontSize ="10">
На код c# для заповнення елемента під час виконання було уздовж ліній:
GameStateLog.Items.Insert(0, GameStateCounter + ": Нова гра держава: очікування на гравця 1 Ім’я");
Це розробив штрафу достатньо, але UI показав божевільні кількість оббивка навколо окремі повідомлення, як вони були додані. Це має сенс, якщо кінцеві користувачі повинні мати можливість виділити ці елементи, але не має сенсу коли я просто хочу, щоб показати Запуск серії журналу повідомлень-користувачів не буде виділити дані, просто переглядати їх. Це було дивно важко знайти легкий спосіб зробити це і, як я знайшов його не обов'язково "легко", але я отримав це працює ОК. Ключові розуміння прийшли за це проводки Тут (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) з Боб Relyea. Замість того, щоб додати рядки на колекції елементів на список множинний, додати ListBoxItems. Додавши рядок, Список множинний було створення власного ListBoxItem на власний. Я не зміг вплинути на що-небудь про це ListBoxItem після факту. Новий код:
приватні недійсними AddGameStateLogMessage(рядок theMessage) { Лі ListBoxItem = нові ListBoxItem(); Лі.Вмісту = theMessage; Лі.MaxHeight = 25; Товщина thisPadding = нові Товщина(5, 0, 5, 0); Лі.Оббивка = thisPadding; GameStateLog.Items.Insert(0,Лі); }
Тут я створюю ListBoxItem та їх Вставка. Я видалив надлишок оббивка, встановивши його товщина.
Це досить гнучким, тому що я маю намір зробити деякі колірне кодування для виділення певної типи повідомлень і додавши безпосередньо ListBoxItems я отримую стиль їх будь-яким чином я хочу.
Сподіваюся, це допоможе хтось!
</кінець>
Йди за мною на Twitter в http://www.twitter.com/pagalvin