mesačné archívy: Apríl 2013

Rýchle a jednoduché: Presunúť obdĺžnik pomocou C# Windows Store app

Môj celkový blog filozofia je, že je to dokonale jemné blog o staré, usadili témy, ktoré boli zahrnuté do smrti inde.  Predpokladám, že táto téma je jedným z tých, ale ja som blogovanie to rovnako.

Bol som pracoval na app store okna a ja som v časti kde je potrebné urobiť niektoré animácie.  Na tento účel, Som bol zisťuje bitov a kúsky windows uložiť app animácie ktoré, ako to dopadá, je celkom blízko k, ale nie zrovna rád, XAML založené animácie v .NET (Stále som prichádza k rvačce s tým, že WinRT <> .NET 🙂 ).

Dnes ráno som chcel dostať rukoväť na drag and drop operácie.  Ceste do že, Dostal zabředly pohybe obdĺžnik namiesto :).  Tu je kód, ktorý sa pohybuje obdĺžnik, keď používateľ klikne na tlačidlo:

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

Trik je tu, že nemôžete priamo zmeniť OffsetX alebo OffsetY.  Tam môže byť viac šikovný spôsob, ako to urobiť (a ak budete vedieť a cítiť ako, Uverejnite v komentároch). 

Za týmto účelom, Potrebujem:

1. Získajte MatrixTransform obdĺžnika (odlievanie RenderTransform).

2. Získajte matice ten chlap.

3. Zmena matice kompenzácií.

4. Priradiť matice späť na MatrixTransform.

5. Priradiť MatrixTransform späť na obdĺžnik.

Vyskúšať to, Dajte obdĺžnik a tlačidlo obrazovky. Keď kliknem na tlačidlo, nad logikou popravených a okamžite presunie obdĺžnik.

V určitom okamihu, Chcel by som oživiť to ale netuším ako sa dostať DoubleAnimation k práci na ňom (Storyboard.SetTargetProperty() je záhadou pre mňa na to čas).

</koniec>

undefinedVyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

Nastavenie výšky ListboxItems v ListBox programovo pre Windows Store App

I 'm working on windows aplikácie skladu a jedna z vecí, ktoré chcem urobiť v app je zobrazenie denníka, ktorý zobrazuje správy o stave a iné informačné tidbits, ako používateľ pracuje veci. Na tento účel, Po pridaní ListBox takto:

<ListBox x:Meno ="GameStateLog" HorizontalAlignment ="Centrum" Výška ="221" VerticalAlignment ="Hore" Šírka ="499" Padding ="0" FontSize ="10">

 

C# kód pre naplnenie listbox za behu bol v duchu:

GameStateLog.Items.Insert(0, GameStateCounter    + ": Novú hru stav: Čakanie na hráča 1 meno");

Táto pracoval v poriadku dosť ale UI ukázal šialené množstvo polstrovanie okolo jednotlivé správy, ako oni boli pridané. To dáva zmysel, ak chcú koncoví používatelia môcť vybrať tieto položky, ale nemá zmysel, keď chcem zobraziť bežiace série správ denníka-užívateľov nebude zvoliť, len Zobraziť. To bolo divne ťažké nájsť jednoduchý spôsob, ako to urobiť a pravdepodobne, spôsob, ako som zistil, že nie je nevyhnutne "jednoduché", ale mám to funguje OK. Kľúčový pohľad pochádza z tohto vysielania tu (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) od Bob Relyea. Namiesto pridania struny na zhromažďovanie položiek na ListBox, Pridať ListBoxItems. Pridaním reťazca, ListBox bolo vytvorenie vlastnej ListBoxItem na jeho vlastné. Nebol som schopný ovplyvniť nič o tom, že ListBoxItem po faktu. Nový kód je:

        súkromné neplatné AddGameStateLogMessage(reťazec theMessage)
        {
            ListBoxItem li = nové ListBoxItem();
            li.Obsah = theMessage;
            li.MaxHeight = 25;

            Hrúbka thisPadding = nové Hrúbka(5, 0, 5, 0);
            li.Padding = thisPadding;

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

 

Tu som vytvoriť ListBoxItem spoločnosti a ich vkladanie. Som odstránil prebytočný polstrovanie nastavením jeho hrúbka.

To je dosť pružná úmysle urobiť nejaké farebné kódovanie upozorniť na konkrétne typy správ a pridaním priamo ListBoxItems som si štýl na nich akýmkoľvek spôsobom chcem.

Dúfam, že to pomôže niekto!

</koniec>

undefinedVyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin