Rapide kaj Facile: Movi Rektangulon Uzanta C# En Fenestra Vendejo App

Mia entuta bloga filozofio estas ke ĝi estas perfekte bona al blogo pri malnova, Solvita temojn kiu estis kovrita al morto aliloke.  Mi supozas ĉi tiun temon estas unu el tiuj, Sed mi estas blogging ĝi ĉiuokaze.

Mi estis laboranta sur fenestra vendejo app kaj mi estas ĉe la parto kie mi devas fari kelkajn vigligantan.  Al ĉi tiu fino, Mi estis kalkulanta ekstere pecojn kaj pecojn de fenestroj entenas app viveco kiu, Kiel ĝi rezultas, Estas tre proksima al, Sed ne ĝuste ŝatas, XAML bazita vivecojn en .RETO (Mi estas ankoraŭ venanta al tenoj kun la fakto ke WinRT <> .NET 🙂 ).

Ĉi tiu mateno mi deziris akiri anson sur kaleŝo kaj falaj operacioj.  En vojo al tio, Mi akiris bogged malsupren movanta rektangulon male :).  Ĉi tie-a la kodo kiu movas rektangulon kiam la uzanto klakas butonon:

   1:   
   2:              MatrixTransform ct = (MatrixTransform)RectBig.RenderTransform;
   3:              Matrico m = ct.Matrico;
   4:              M.OffsetX  = 10;
   5:              M.OffsetY  = 10;
   6:              Ct.Matrico = m;
   7:              RectBig.RenderTransform = ct;

La ruzo ĉi tie estas ke mi povas ne rekte ŝanĝi OffsetX aŭ OffsetY.  Tie povas esti pli lerta vojo fari tion ĉi (Kaj se vi scias kaj senti kiel, Plaĉi poŝton en la rimarkoj). 

Por fari tion ĉi, Mi devas al:

1. Akiri la MatrixTransform de la rektangulo (De ĵetanta RenderTransform).

2. Akiri la Matricon de tiu ulo.

3. Ŝanĝi la ofsetojn de la Matrico.

4. Reassign la Matrico reen al la MatrixTransform.

5. Reassign la MatrixTransform malantaŭa al la Rektangulo.

Elprovi ĝin, Mi metis rektangulon kaj butonon la ekrano. Kiam mi klakas la butonon, La supra logiko efektivigas kaj movas la rektangulon tuj.

Ĉe iu punkto, Mi ŝatus vigligi tion ĉi sed mi havas neniun ideon kiel akiri DoubleAnimation labori sur ĝi (Storyboard.SetTargetProperty() Estas mistero al mi sur tio ĉi por la tempa estado).

</Fino>

undefinedAboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin

Lasi Respondon

Via retpoŝta adreso ne estos eldonita. Postulita kampojn estas markita *