Штомесячны архіў: Красавіка 2013

Хутка і лёгка: Перамяшчэнне прамавугольніка з дапамогай C # у Windows, у App Store

Мая агульная філасофія блога у тым, што гэта выдатна, блог аб старым, пасяліўся прадметах, якія былі пакрытыя да смерці ў іншым месцы.  Я мяркую, што гэтая тэма з'яўляецца адной з тых, але я вяду блог у любым выпадку.

Я працую на App Store акно, і я ў тую частку, дзе мне трэба зрабіць некаторыя анімацыі.  З гэтай мэтай, Я высвятляючы, біты і кавалкі анімацыі вокнаў крамы дадатак, якое, як высвятляецца, даволі блізка да, але не гэтак жа, як, XAML заснаваны ў анімацыі. NET (Я да гэтага часу ўступілі ў канфлікт з тым, што WinRT <> .NET 🙂 ).

Сёння раніцай я хацеў атрымаць ручку на аперацыі перацягвання.  Па шляху да, што, Я ўгразла перамяшчэння прамавугольніка замест :).  Вось код, які перамяшчае прастакутнік, калі карыстальнік націскае кнопку:

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

Хітрасць тут у тым, што я не магу змяніць OffsetX Наўпрост ці OffsetY.  Там можа быць больш разумным спосабам зрабіць гэта (і калі вы ведаеце і адчуваеце, як, калі ласка, напішыце ў каментарах). 

Для таго, каб зрабіць гэта, Мне трэба, каб:

1. Атрымаць MatrixTransform прамавугольніка (ліццём RenderTransform).

2. Атрымаем матрыцу таго хлопца.

3. Змена зрушэння Матрыцы.

4. Перапрызначэння Матрыца Вярнуцца да MatrixTransform.

5. Перапрызначэння MatrixTransform назад у прастакутнік.

Каб праверыць гэта, Я паклаў прастакутнік і кнопку экрана. Калі я пстрыкаю па кнопцы, Вышэй логікі выконваецца і перамяшчае прастакутнік Адразу.

У нейкі момант, Я хацеў бы, каб ажывіць гэта, але я паняцця не маю, як атрымаць DoubleAnimation працаваць на ім (Storyboard.SetTargetProperty() з'яўляецца загадкай для мяне на гэтым да пары да часу).

</канец>

undefinedПадпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Настройка вышыні ListBoxItems У ListBox праграмна для вокнаў у App Store

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 х:NAME ="GameStateLog" HorizontalAlignment ="Цэнтр" Вышыня ="221" VerticalAlignment ="Верхні" Шырыня ="499" Запаўненне ="0" FontSize ="10">

 

Код C # для запаўнення спісу падчас выканання было ўздоўж ліній:

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 я дабіраюся, каб стыль іх так, як я хачу.

Спадзяюся, што гэта дапамагае камусьці!

</канец>

undefinedПадпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin