Я работаю на приложения Магазина windows и одна из вещей, которые я хочу сделать в приложении является отображение журнала, который показывает сообщения о состоянии и других информационных лакомые кусочки, как пользователь работает вещи. С этой целью, Я добавил ListBox следующим:
<ListBox 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) от Bob Релайея. Вместо добавления строк к коллекции элементов ListBox, Добавить ListBoxItems. Путем добавления строки, ListBox создает свой собственный ListBoxItem на свой собственный. Я не смог повлиять на что-нибудь об этом ListBoxItem после факта. Новый код:
частные void AddGameStateLogMessage(Строка theMessage) { ListBoxItem li = Новые функции ListBoxItem(); Li.Содержание = theMessage; Li.MaxHeight = 25; Толщина thisPadding = Новые функции Толщина(5, 0, 5, 0); Li.Заполнение = thisPadding; GameStateLog.Items.Insert(0,ли); }
Здесь я создаю ListBoxItem и вставить их. Я удалил избыточное заполнение, установив его толщина.
Это довольно гибкой, как я намерен сделать некоторые цветовое кодирование для выделения определенных типов сообщений и непосредственно добавив ListBoxItems я получаю стиль их никоим образом, что я хочу.
Понадейтесь что это помогает кто-то!
</конец>
Следуй за мной по щебетать на http://www.twitter.com/pagalvin