Monthly Archives: Aprīlis 2013

Ātri un viegli: Pārvietojiet taisnstūri, izmantojot c# app Windows Store

Manu vispārējo blog filozofija ir, ka tas ir pilnīgi fine Blogs par veco, nosegt priekšmetos, kas ir uz nāvi citur.  Es pieņemu, ka šī tēma ir viena no tām, bet es esmu blogošana tas vienalga.

Esmu strādājusi par logu veikalu app, un es esmu daļa, kur man ir jādara, daži apguve.  Šajā nolūkā, Esmu norādītas bitiem un gabali no windows saglabāt app animācijas kurā, kā izrādās, ir diezgan tuvu, bet ne gluži kā, XAML balstīta animācijas .NET (Es esmu joprojām tuvojas grips ar faktu, ka WinRT <> .NET 🙂 ).

Šorīt es gribēju iegūt rokturi uz velciet un nometiet operācijas.  Pa ceļam uz šo, Es saņēmu bogged noteikti virzās taisnstūra vietā :).  Šeit ir kods, kas pārvieto taisnstūri, kad lietotājs noklikšķina uz pogas:

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

Triks šeit ir, ka es nevaru mainīt tieši OffsetX vai OffsetY.  Var būt vairāk gudrs veids, kā to izdarīt (un, ja jūs zināt, un šķiet, piemēram, Lūdzu, pēc komentāru). 

Lai to paveiktu, Ir nepieciešams, lai:

1. Iegūtu taisnstūra MatrixTransform (lejot RenderTransform).

2. Saņemt, ka puisis Matrix.

3. Mainīt matricas nobīdes.

4. Piešķirt atpakaļ uz MatrixTransform matrica.

5. Piešķirt atpakaļ uz taisnstūra MatrixTransform.

Lai to pārbaudītu, Man taisnstūri un ekrāna pogas. Noklikšķinot uz pogas, iepriekš loģika izpilda un nekavējoties pārvieto taisnstūra.

Kādā brīdī, Es gribētu rosināt šo, bet man nav ne jausmas, kā iegūt DoubleAnimation ar to strādāt (Storyboard.SetTargetProperty() ir noslēpums, lai man par šo laiku tiek).

</beigās>

undefinedAbonēt manu blogu.

Sekot mani uz čivināt pie http://www.twitter.com/pagalvin

Iestatījumu Augstums ListboxItems ListBox programmiski Windows Store app

Es esmu strādā pie veikala windows lietojumprogramma un viena no lietām, ko es gribu darīt app ir parādīt žurnālu, kas parāda statusu sludinājumi un citi informatīvie niekiem kā lietotājs darbojas lietas. Šajā nolūkā, Es pievieno sarakstlodziņam:

<ListBox x:Nosaukums ="GameStateLog" HorizontalAlignment ="Centrs" Augstums ="221" VerticalAlignment ="Augšā" Platums ="499" Padding ="0" FontSize ="10">

 

C# kodu, lai aizpildītu sarakstlodziņu, Runtime bija gar līniju no:

GameStateLog.Items.Insert(0, GameStateCounter     + ": Jauna spēle valsts: gaida spēlētāju 1 vārds");

Tas strādāja labi, pietiekami, bet UI parādīja crazy summa odere ap atsevišķiem ziņojumiem, kā tie tika pievienoti. Tas ir jēga, ja vēlaties gala lietotājiem, lai varētu atlasīt šo vienumu, bet nesaprotam, kad tikai gribu parādīt žurnāla ziņas, kas darbojas virkne-lietotāji nevar atlasīt šos, tikai tos skatīt. Tas bija savādi grūti atrast viegli veids, kā to izdarīt un apstrīdami, veids, kā es atklāju, ka ne vienmēr "viegli", bet man tas strādā OK. Galvenie ieskatu, kas nāca no šo posting šeit (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) no Bob Relyea. Tā vietā, lai virknes pievienošana krājumu savākšanas ListBox, pievienot ListBoxItems. Pievienojot virkni, ListBox radīja savas ListBoxItem uz savu. Man nebija iespēja ietekmēt kaut ko par to, ka ListBoxItem pēc fakta. Jaunais kods ir:

        privāts anulēts AddGameStateLogMessage(virkne Ziņojumu)
        {
            ListBoxItem li = jaunā ListBoxItem();
            Li.Satura = ziņojumu;
            Li.MaxHeight = 25;

            Biezumu thisPadding = jaunā Biezums(5, 0, 5, 0);
            Li.Padding = thisPadding;

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

 

Šeit ListBoxItem ir veidoju un ievietot tos. Es noņemt lieko polsterējums, nosakot tā biezums.

Tas ir diezgan elastīgi, kā paredzējis darīt daži krāsu kodēšanu, lai iezīmētu konkrētu veidu ziņojumus un pievienojot tieši ListBoxItems man stilu tos jebkādā veidā, es gribu.

Ceru, ka tas palīdz kāds!

</beigās>

undefinedAbonēt manu blogu.

Sekot mani uz čivināt pie http://www.twitter.com/pagalvin