Kuu arhiivid: Aprill 2013

Kiire ja lihtne: Liikuda kasutades C# Windows Store appi ristkülik

Minu kogu blogi filosoofia on täiesti trahvi vana blogi, tasakaalustatud surma mujal käsitletud teemadel.  Eeldan, et see teema on üks neist, Aga ma olen blogimise see Igatahes.

Ma olen töötanud akna poe app ja ma olen osa, kus ma pean tegema mõningaid elavdamine.  Sel eesmärgil, Ma olen figuring bitti ja tükki windows salvestab app animatsioon mis, nagu selgub, on üsna lähedal, kuid täpselt ei meeldi, XAML-i põhise animatsioone .NET (Ma olen ikka tulevad rinda asjaolu et WinRT <> .NET 🙂 ).

Täna hommikul ma tahtsin saan lahendada drag ja tilk operatsioone.  Tee mis, Ma sain liigsetesse liigub ristküliku asemel :).  Siin on kood, mis liigub ristkülik, kui kasutaja klõpsab nuppu:

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

Trikk on, et ma ei saa otseselt muuta OffsetX või OffsetY.  Võib esineda rohkem tark viis selleks (ja kui sa tead ja tunned nagu, Palun postitage kommentaare). 

Et seda teha, Mul on vaja:

1. Saad ristküliku MatrixTransform (poolt hääletavad RenderTransform).

2. Saada see mees maatriks.

3. Muutus on Matrix nihetega.

4. Määra maatriksi ning MatrixTransform.

5. Määra uuesti MatrixTransform tagasi ristkülikuks.

Katsetada seda, Panin ristkülik ja nupp ekraani. Kui ma vajutan nuppu, ülaltoodud loogika käivitub ja liigub ristküliku kohe.

Mingil hetkel, Tahaksin animeerida see aga ma ei tea, kuidas saad DoubleAnimation tööd selle kallal (Storyboard.SetTargetProperty() on mõistatus mulle see korda).

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin

Millega ListboxItems kõrgus loendiboksi programmiliselt Windows Store app

Mul töötab windows store rakenduse ja üks asi, mida ma tahan teha app on Kuva Logi, mis näitab seisundi sõnumeid ja teiste informatiivsete tidbits, kui kasutaja töötab asju. Sel eesmärgil, Lisasin loendiboksi järgmiselt.:

<Loendiboksi x:Nimi ="GameStateLog" HorizontalAlignment ="Keskus" Kõrgus ="221" VerticalAlignment ="Parimaks" Laius ="499" Täidis ="0" 2.@Lisateabe ="10">

 

C# koodi käitusajal loendiboksi asustamiseks oli eeskujul:

GameStateLog.Items.Insert(0, GameStateCounter    + ": Uus mäng riik: Ootan mängija 1 Nimi");

See toimis fine piisavalt, kuid UI näitas täidise ümber üksikuid kirju hull summa lisanud. See on mõistlik, kui ma soovi lõppkasutajad valida neid punkte aga ei ole mõtet, kui ma lihtsalt tahan näidata töötab seeria Logi sõnumid – kasutajad ei vali neid, lihtsalt neid vaadata. See oli imelikult raske leida lihtne viis seda teha ja vaieldamatult, Ma leidsin ta nii ei ole tingimata "lihtne" aga ma sain selle töö OK. Peamised insight tulid sisestamine Siin (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) alates Bob Relyea. Üksuste kogumine Nimekirjakastist stringid lisamise asemel, lisada ListBoxItems. Lisage string, Nimekirjakastist oli luua oma ListBoxItem ise. Ma ei suutnud mõjutada midagi selle ListBoxItem pärast asjaolu. Uus kood on:

        erasektori tühine AddGameStateLogMessage(stringi theMessage)
        {
            ListBoxItem li = Uus ListBoxItem();
            Li.Sisu = theMessage;
            Li.MaxHeight = 25;

            Paksus thisPadding = Uus Paksus(5, 0, 5, 0);
            Li.Täidis = thisPadding;

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

 

Siin ma koostan ListBoxItem's ja lisades neile. Ma eemaldada liigne polster seades selle paksusest.

See on üsna paindlik, kuna ma kavatsen teha mõned värvi rõhutada teatud tüüpi teadete kodeerimine ja lisades otse ListBoxItems ma saan stiil neile kuidagi ma tahan.

Loodan, et see aitab keegi!

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin