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

Брзо и лако: Померите правоугаоник коришћењем Ц # У Виндовс Апп Сторе

My overall blog philosophy is that it’s perfectly fine to blog about old, settled subjects that have been covered to death elsewhere.  I assume this topic is one of those, but I’m blogging it anyway.

I’ve been working on a window store app and I’m at the part where I need to do some animating.  У том циљу, I’ve been figuring out bits and pieces of windows store app animation which, as it turns out, is quite close to, but not exactly like, XAML based animations in .NET (I’m still coming to grips with the fact that WinRT <> .NET 🙂 ).

This morning I wanted to get a handle on drag and drop operations.  En route to that, I got bogged down moving a rectangle instead :).  Here’s the code that moves a rectangle when the user clicks a button:

   1:   
   2:              MatrixTransform ct = (MatrixTransform)rectBig.RenderTransform;
   3:              Matrix m = ct.Matrix;
   4:              m.OffsetX  = 10;
   5:              m.OffsetY  = 10;
   6:              ct.Matrix = m;
   7:              rectBig.RenderTransform = ct;

The trick here is that I can’t directly change OffsetX or OffsetY.  There may be a more clever way of doing this (and if you know and feel like, please post in the comments). 

In order to do this, I need to:

1. Get the MatrixTransform of the rectangle (by casting RenderTransform).

2. Get the Matrix of that guy.

3. Change the Matrix’s offsets.

4. Reassign the Matrix back to the MatrixTransform.

5. Reassign the MatrixTransform back to the Rectangle.

To test it, I put a rectangle and button the screen. When I click the button, the above logic executes and moves the rectangle immediately.

У неком тренутку, I’d like to animate this but I have no idea how to get a DoubleAnimation to work on it (Storyboard.SetTargetProperty() is a mystery to me on this for the time being).

</крај>

undefinedПретплатите се на мој блог.

Следите ме на Туиттер на http://www.twitter.com/pagalvin

Подешавање висине ЛистбокИтемс Ин а Листбок Програмски за Виндовс Апп Сторе

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. У том циљу, Ја додао ЛистБок гласи:

<ЛистБок к:Наме ="ГамеСтатеЛог" ХоризонталАлигнмент ="Центар" Висина ="221" ВертицалАлигнмент ="Топ" Видтх ="499" Паддинг ="0" Фонтсизе ="10">

 

Ц # код да попуните Листбок у рунтиме био на линији:

ГамеСтатеЛог.Итемс.Инсерт(0, ГамеСтатеЦоунтер   + ": Нова игра држава: чека играча 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. Уместо додавања жице на прикупљање ставки на Листбок, 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. Нови број је:

        приватан воид АддГамеСтатеЛогМессаге(ниска тхеМессаге)
        {
            ЛистБокИтем да = нови ЛистБокИтем();
            ли.Цонтент = тхеМессаге;
            ли.МакХеигхт = 25;

            Дебљина тхисПаддинг = нови Дебљина(5, 0, 5, 0);
            ли.Паддинг = тхисПаддинг;

            ГамеСтатеЛог.Итемс.Инсерт(0,Ли);
        }

 

Here I’m creating ListBoxItem’s and inserting them. Уклонио сам вишак Размак постављањем дебљину.

Ово је прилично флексибилна јер ја намеравам да урадим неке колор кодирање да осветли одређене врсте порука, као и директним додавањем ЛистБокИтемс сам се да стил их на било који начин желим.

Надам се ово помаже неко!

</крај>

undefinedПретплатите се на мој блог.

Следите ме на Туиттер на http://www.twitter.com/pagalvin