Buwanang Archive: Abril 2013

Mabilis at madali: Ilipat ang isang Parihaba Paggamit ng C # Sa isang Windows App Store

Aking mga pangkalahatang pilosopiya blog ay na ito ay ganap na ganap fine sa blog tungkol sa lumang, naisaayos na mga paksa na sakop sa kamatayan sa ibang lugar.  Ipinapalagay ko ang paksang ito ay isa sa mga, ngunit ako sa pagba-blog pa rin ito.

Ako nagtatrabaho sa isang window ng app store at ako sa bahagi na kung saan kailangan kong gawin ang ilang mga animating.  Upang ito ng pagtatapos, Ko ang pag-uunawa ng bits at piraso ng mga window ng animation store app na, bilang ito lumiliko out, ay medyo malapit sa, ngunit hindi eksakto tulad ng, XAML batay sa mga animation. NET (Pa rin ako darating sa grips sa ang katunayan na ang WinRT <> .NET 🙂 ).

Ito umaga Nais kong upang makakuha ng isang hawakan sa drag at drop ng mga operasyon.  En ruta sa na, Nakatanggap ako nabalaho sa putik paglipat ng isang parihaba sa halip :).  Narito ang code na gumagalaw ng isang parihaba ng gumagamit kapag nag-click ang isang pindutan:

   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;

Ang bilis ng kamay dito ay na hindi direktang ko maaaring baguhin o OffsetX OffsetY.  Maaaring mayroong isang mas matalino na paraan ng paggawa nito (at kung alam mo at pakiramdam tulad ng, paki-post sa mga komento). 

Upang magawa ito, Kailangan kong:

1. Kunin ang MatrixTransform ng parihaba (sa pamamagitan ng paghahagis RenderTransform).

2. Kunin ang Matrix ng na tao.

3. Baguhin Offset ang Matrix ni.

4. Reassign ang Matrix pabalik sa MatrixTransform.

5. Reassign ang MatrixTransform pabalik sa Parihaba.

Upang subukan ito, Ko bang ilagay ang isang rektanggulo at pindutan sa screen. Kailan ko i-click ang pindutan ng, itaas ang logic executes at gumagalaw ang rektanggulo agad.

Sa ilang mga punto, Gusto kong bigyang-buhay na ito ngunit mayroon akong walang ideya kung paano upang makakuha ng isang DoubleAnimation upang gumana sa mga ito (Storyboard.SetTargetProperty() ay isang misteryo sa akin sa ito para sa pansamantala).

</dulo>

undefinedMag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

Pagse-set ang Taas ng ListboxItems Sa isang ListBox ayon sa programa para sa Windows App Store

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. Upang ito ng pagtatapos, Nagdagdag ako ng isang ListBox tulad ng sumusunod:

<ListBox x:Pangalanan ="GameStateLog" HorizontalAlignment ="Gitna" Taas ="221" VerticalAlignment ="Tuktok" Lapad ="499" Padding ="0" FontSize ="10">

 

Ang code sa C # sa populate ang listbox sa runtime ay kasama ang mga linya ng:

GameStateLog.Items.Insert(0, GameStateCounter     + ": Bagong laro ng estado: naghihintay para sa manlalaro 1 pangalan");

This worked out fine enough but the UI showed a crazy amount of padding around the individual messages as they were added. Iyon saysay kapag gusto kong mga end user na magagawang piliin ang mga item na ito ngunit hindi magkaroon ng kahulugan kapag ko lang nais na ipakita ang isang tumatakbo serye ng mga mensahe log - ang mga gumagamit ay hindi piliin ang mga, just view them. Ito ay kakaiba mahirap upang mahanap ang isang madaling paraan upang gawin ito at arguably, the way I found it isn’t necessarily “easy” but I got it working OK. Ang pangunahing pananaw ay nanggaling mula sa pag-post dito (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) from Bob Relyea. Sa halip ng pagdaragdag ng mga string sa koleksyon Item sa ListBox, add ListBoxItems. Sa pamamagitan ng pagdaragdag ng isang string, the ListBox was creating its own ListBoxItem on its own. I wasn’t able to affect anything about that ListBoxItem after the fact. Ang bagong code ay:

        pribado walang bisa AddGameStateLogMessage(pisi theMessage)
        {
            ListBoxItem na = bago ListBoxItem();
            li.Content = theMessage;
            li.MaxHeight = 25;

            Kapal thisPadding = bago Kapal(5, 0, 5, 0);
            li.Padding = thisPadding;

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

 

Here I’m creating ListBoxItem’s and inserting them. Inalis ko ang labis na padding sa pamamagitan ng pagtatakda nito kapal.

Ito ay medyo nababaluktot bilang ko balak na gawin ang ilang mga kulay coding upang i-highlight ang partikular na uri ng mensahe at sa pamamagitan ng pagdaragdag ng direkta ListBoxItems nakuha ko sa estilo sa anong paraan na gusto ko.

Sana ito ay tumutulong sa isang tao!

</dulo>

undefinedMag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin