Qeb Archives: Qhov rais tom khw

Txoj kev sai thiab yooj yim: Teev tus me me ntawm ib yam khoom nyob rau hauv ib lub thawv sau nyob rau hauv lub qhov rais tom khw App

Nyob rau hauv lub qhov rais tom khw App kuv yuav tsim, Kuv xav kom koj qhia cov neeg siv ntau yam lus xwm txheej.  Kuv nqa ib ListBox li lub cuab tam los qhia nws kom lawv scroll los ntawm cov khoom lawv thiab zoo tag li. 

Lus muaj xwm txheej xwb, li ntawd, yuav tsis muaj muab ntxiv tag li whitespace ncig vim tus neeg siv yuav yeej tsis xaiv lawv rau txhua yam.  Default cwj pwm ntawm cov ListBox muab ib tug nqi ntau yam pauv loj padding thiab kuv xav rhuav tshem ntawm nws.  Zoo.... koj tsis tau ua tshaj plaws nyob rau hauv ListBox ntawd tsi ncaj qha.  TXAWM LI CAS LOS, koj yuav ua rau cov khoom uas koj ntxiv:

        lwm yam khoob lug AddGameStateLogMessage(hlua theMessage)
        {
            TextBox t = tshiab TextBox();
            t.Text = GameStateCounter    + ": " + theMessage;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            Thickness thisPadding = tshiab Thickness(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem lis = tshiab ListBoxItem();
            lis.Txheej = t;
            lis.MaxHeight = 25;
            thisPadding = tshiab Thickness(5, 0, 5, 0);
            lis.Padding = thisPadding;

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

nyob rau saum no, Kuv tabtom npaj ib cov TextBox thiab teem nws font, nws cov padding, yam.

Tom ntej, Tsim tau ib lub ListBoxItem thiab muab nws cov ntaub ntawv kawm kom tau cov formatted TextBox.

Thaum kawg, Kuv ntxig rau ListBoxItem mus rau lub ListBox.  (Kuv xav qhia tias tsis ntev los no tshaj lus rau saum daim ntawv, li no tso nrog rau cov(0,lis) tsis muaj ib tug sib ntxiv tej yam yooj yim() invocation.).

Kuv yuav ua tweaking no ua lub ntej kuv yeej zoo siab nrog lub ListBox zoo tab sis cov qauv qhia saum toj no lawm ncw.  Hopefully lwm tus pom tias yuav pab tau.

</kawg>

undefinedSubscribe rau kuv blog.

Raws li kuv nyob Twitter tom http://www.twitter.com/pagalvin

Txoj kev sai thiab yooj yim: Txav mus rau ib tug duab plaub siv C# ntawm lub qhov rais tom khw App

Kuv blog philosophy zuag qhia tag nrho yog tias nws tseem zoo txig rau blog hais txog kev laus, tswm compound uas tau raug tuag sim lwm qhov.  Kuv xav tias cov npe no yog ib cov, tab sis kuv yog blogging nws lawm.

Kuv twb tau ua hauj lwm rau ntawm lub qhov rais tom khw app thiab kuv yog tus nyob rau qhov twg kuv yuav tsum tau ua ib co animating.  Rau qhov tus kawg, Koj khom lub kuv twb tau tsheb tawm cov khoom thiab tej daim ntawm qhov rais cia app animation uas, thaum nws puv, yog heev ze rau, tab sis xyov tsis nyiam, Raws li XAML animations nyob .NET (Kuv tabtom tseem tabtom mus grips uas muaj txog ntawd WinRT <> .NET 🙂 ).

No sawv ntxov kuv xav tau ib tug kov rau drag thiab poob haujlwm.  Siv cov lawv kom uas, Kuv bogged tau nqes mus ib cov duab plaub xwb :).  Ntawm no yog cov chaws uas txav ib tug duab plaub thaum cov neeg clicks lub khawm:

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

Qhov ua kom yuam kev ntawm no yog hais tias kuv ncaj qha mus hloov tsis tau OffsetX los yog OffsetY.  Tej zaum yuav muaj ib txoj kev ntse ntau ua qhov no (Yog hais tias koj paub thiab hnov nyiam, thov rooj vag hauv cov lus). 

Yuav kom ua li no, Kuv yuav tau mus:

1. Tau qhov MatrixTransform ntawm tus duab plaub (ntawm casting RenderTransform).

2. Mus rau Matrix ntawm tus txiv leej tub.

3. Hloov cov Matrix offsets.

4. Reassign hauv Matrix rov qab mus rau lub MatrixTransform.

5. Reassign lub MatrixTransform rov rau cov duab plaub.

Sim nws, Muab ib cov duab plaub thiab button qhov screen. Thaum kuv nias lub khawm, cov hais los saum toj logic executes thiab txav tus duab plaub tam sim.

Ntawm tej taw tes, Kuv xav animate no tab sis kuv muaj tsis muaj lub tswv yim ua tau li cas muaj DoubleAnimation ua hauj lwm rau nws (Storyboard.SetTargetProperty() yog tsis rau kuv ntawm no rau lub sij hawm tau).

</kawg>

undefinedSubscribe rau kuv blog.

Raws li kuv nyob Twitter tom http://www.twitter.com/pagalvin

Teem rau qhov siab ntawm ListboxItems nyob hauv ib ListBox Programmatically rau lub qhov rais tom khw App

Kuv yuav ua hauj lwm rau hauv ib daim ntawv thov lub tsev khw thiab yog ib yam uas kuv xav ua nyob rau hauv lub yog tso saib lub cav uas pom tias yog lus raws li txoj cai thiab muaj lwm yam xwm txheej tidbits li cov neeg ua haujlwm yam. Rau qhov tus kawg, Kuv ntxiv tus ib ListBox raws li nram no:

<ListBox x:Lub npe ="GameStateLog" HorizontalAlignment ="Chaw" Qhov siab ="221" VerticalAlignment ="Saum" Dav ="499" Padding ="0" FontSize ="10">

 

Qhov C# chaws los populate tus listbox ntawm runtime yog raws cov kab kev:

GameStateLog.Items.Insert(0, GameStateCounter    + ": Tshiab qus xeev: tos rau cov neeg uas ua ntawv 1 lub npe");

Qhov no ua haujlwm tawm nplua txaus, tiam sis cov UI tsom tus vwm npaum li cas padding nyob ib ncig ntawm ib tug neeg lus raws li lawv tau ntxiv. Uas ua rau kev txiav txim zoo yog hais tias kuv xav kawg cov neeg siv yuav tsum tau xaiv cov khoom tiam sis tsis ntxim yog thaum kuv xav qhia tus ciav series uas sib cav – cov neeg siv yuav tsis xaiv cov no, cia saib lawv. Kaum feeb ib qho nyuaj mus nrhiav ib txoj kev yooj yim ua li no thiab arguably, qhov uas kuv pom tias nws tsis yog tas "yooj yim" tab sis kuv tau txais nws ua hauj lwm los lawv xav tshuaj. Cov kev pom tseem ceeb tuaj ntawm no xo ntawm no (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) ntawm Bob Relyea. Tsis txhob muab cov hlua rau qhov khoom sau los ntawm tus ListBox, ntxiv ListBoxItems. Yog muab ib txoj hlua, tus ListBox yog ib txoj kev kom nws ListBoxItem nws xwb. Kuv tsis tau mus rau txhua yam uas hais txog ntawd ListBoxItem tom qab txog. Yog lub chaws tshiab:

        lwm yam khoob lug AddGameStateLogMessage(hlua theMessage)
        {
            ListBoxItem lis = tshiab ListBoxItem();
            lis.Txheej = theMessage;
            lis.MaxHeight = 25;

            Thickness thisPadding = tshiab Thickness(5, 0, 5, 0);
            lis.Padding = thisPadding;

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

 

Ntawm no kuv yog tsim tau lub ListBoxItem thiab inserting lawv. Kuv tshem tawm cov padding ntau heev los ntawm teev cov thickness.

Qhov no zoo nkauj yooj ywm kom ua los ntawm kev ncaj qha mus ntxiv ListBoxItems kuv tau mus style lawv li kuv xav thiab kuv tseem npaj siab yuav ua tau ib co tsos kob coding los highlight tej hom lus.

Qhov no yuav pab lwm tus neeg vam!

</kawg>

undefinedSubscribe rau kuv blog.

Raws li kuv nyob Twitter tom http://www.twitter.com/pagalvin