Категория Архиви: XAML

Настройка на височината на ListboxItems в падащ списък програмно за ап магазина на Windows

Аз съм на работа windows съхранява приложение и едно от нещата, които искам да направя в ап е показване на регистрационен файл, който показва съобщения за състоянието и други информационни tidbits, тъй като потребителят работи неща. За тази цел, Аз прибавка списък както следва:

<Падащ списък x:Име ="GameStateLog" HorizontalAlignment ="Център" Височина ="221" VerticalAlignment ="Нагоре" Ширина ="499" Подложка ="0" FontSize ="10">

 

C# код да попълните списък по време на изпълнение е по подобие на:

GameStateLog.Items.Insert(0, GameStateCounter    + ": Нова игра състояние: Чакащи за играч 1 Име");

Този работник вън глоба достатъчно но UI показа един луд размер на подложка около отделните съобщения, тъй като те са били добавени. Това има смисъл, ако искате крайните потребители за да можете да изберете тези артикули, но не прави смисъл, когато аз просто искам да покажа тичане серия от регистър на съобщения – потребителите няма да избират тези, просто ги видите. Беше странно е трудно да се намери лесен начин да направите това и може би, начина, по който открих, че не е задължително да е "лесно", но аз го имам работа OK. Ключово прозрение дойде от този постинг Тук (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) от Боб Relyea. Вместо за добавяне на низове към колекцията от елементи в падащ списък, Добави ListBoxItems. Чрез добавяне на низ, падащ списък е създаването на своя собствена ListBoxItem сама по себе си. I wasn't в състояние да засегне нищо за това ListBoxItem след този факт. Новият кодекс е:

        частни невалидни AddGameStateLogMessage(низ theMessage)
        {
            ListBoxItem li = нов ListBoxItem();
            Li.Съдържание = theMessage;
            Li.MaxHeight = 25;

            Дебелина thisPadding = нов Дебелина(5, 0, 5, 0);
            Li.Подложка = thisPadding;

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

 

Тук аз съм създаване на ListBoxItem и ги Вмъкване. Аз се отстраняват излишната подложка чрез определяне дебелината му.

Това е доста гъвкава, както аз възнамерявам да направя някои цветово кодиране да подчертае определени типове съобщения и чрез директно добавяне ListBoxItems съм се да ги стил никакъв начин искам.

Надежда този помагам някой!

</край>

undefinedАбонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin