месечни архиви: Април 2013

Бърз и лесен: Премести правоъгълник, използвайки C# в ап магазина на Windows

Моята обща блог философия е, че това е съвършено глоба за блог за стария, постоянно теми, които са били обхванати до смърт другаде.  Предполагам, че тази тема е един от тези, но аз съм blogging това все пак.

Аз съм бил на работа на Прозорец магазин ап и аз съм в тази част където трябва да направите някои активност.  За тази цел, Аз съм фигуриращ битове и парчета от windows съхранява ап анимация които, както се оказва, е доста близо до, но не точно като, XAML базирани анимации в .NET (Аз съм все още се пребори с факта, че WinRT <> .NET 🙂 ).

Тази сутрин ми се искаше да се справя на влача и капка операции.  По пътя към това, Аз имам затънал преместване правоъгълник вместо :).  Тук е кодът, който движи правоъгълник, когато потребителят щракне върху бутон:

   1:   
   2:              MatrixTransform ct = (MatrixTransform)rectBig.RenderTransform;
   3:              Матрицата m = ct.Матрица;
   4:              m.OffsetX  = 10;
   5:              m.OffsetY  = 10;
   6:              CT.Матрицата = m;
   7:              rectBig.RenderTransform = ct;

Важното тук е, че направо не мога да променя OffsetX или OffsetY.  Може да има по-хитър начин за това (и ако познавате и се чувстват като, Моля мнение в коментарите). 

За да направите това, Трябва да:

1. Вземи MatrixTransform на правоъгълника (чрез леене RenderTransform).

2. Вземи матрицата на този човек.

3. Промяна на матрицата компенсации.

4. Повторно възлагане на матрицата обратно към MatrixTransform.

5. Повторно възлагане на MatrixTransform обратно към правоъгълника.

Да го проверите, Поставете правоъгълник и бутон на екрана. Когато щракнете върху бутона, по-горе логиката изпълнява и премества правоъгълника веднага.

В някакъв момент, Бих искал да анимирам това, но аз имам никакъв представа как да се получи DoubleAnimation да работят по него (Storyboard.SetTargetProperty() е е загадка за мен по това време).

</край>

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

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

Настройка на височината на 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