Cartlanna Catagóire: Windows Store

Tapaidh agus éasca: Socraigh an Méid na Míreanna i mBosca Liosta i Store App Windows

I App Store Windows Tá mé ag cruthú, Ba mhaith liom a thaispeáint don úsáideoir teachtaireachtaí eolais éagsúla.  Phioc mé listbox mar an uirlis a thaispeáint dó ionas gur féidir leo a scrollú trí iad agus go léir go stuif maith. 

Is iad na teachtaireachtaí eolais amháin, so there’s no need to provide all that extra whitespace around them since the user can never select them for anything.  The default behavior of the ListBox provides a substantial amount of padding and I wanted to get rid of it.  Well …. you can’t do that sort of thing on the ListBox directly.  HOWEVER, you can do it to the items you add:

        príobháideach neamhní AddGameStateLogMessage(teaghrán theMessage)
        {
            TextBox t = nua TextBox();
            t.Text = GameStateCounter   + ": " + theMessage;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            Tiús thisPadding = nua Tiús(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem go = nua ListBoxItem();
            li.Content = t;
            li.MaxHeight = 25;
            thisPadding = nua Tiús(5, 0, 5, 0);
            li.Padding = thisPadding;

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

in the above, I’m creating a TextBox and setting its font, its padding, etc.

Ar Aghaidh, I create a ListBoxItem and set its content to the formatted TextBox.

Mar fhocal scoir, I insert the ListBoxItem into the ListBox.  (I want to show most recent messages at the top of the list, hence the Insert(0,li) instead of a simple Add() invocation.).

I will be tweaking this a bit before I’m really happy with the ListBox behavior but the pattern shown above has been very fruitful.  Hopefully someone else finds it helpful.

</deireadh>

undefinedLiostáil le mo bhlag.

Lean mé ar Twitter ag http://www.twitter.com/pagalvin

Tapaidh agus éasca: Bog ar Dronuilleog Ag baint úsáide as C # I Store App Windows

Is é mo fhealsúnacht bhlag foriomlán go bhfuil sé breá breá le blag faoi aois, socraithe hábhair a clúdaíodh chun báis in áiteanna eile.  Glacadh leis go bhfuil an ábhar seo ar cheann de na, ach tá mé ag blogging é ar aon nós.

Tá mé ag obair ar app siopa fuinneog agus tá mé ag an chuid nuair is gá dom a dhéanamh ar roinnt beocht.  Chun na críche sin, Tá mé ag figuring amach giotán agus píosaí de fuinneoga siopa app beochan a, mar a casadh sé amach, Tá gar go leor, ach ní go díreach cosúil le, XAML beochan bunaithe i. NET (Tá mé ag teacht fós i ngleic leis an bhfíric go WinRT <> .NET 🙂 ).

Ar maidin bhí mé a fháil a láimhseáil ar oibríochtaí agus tarraing titim.  En mbealach chuig an, Fuair ​​mé bogged síos ag bogadh dronuilleog ionad :).  Seo an cód go mbogann dronuilleog nuair a cad a tharlaíonn nuair an t-úsáideoir an cnaipe:

   1:   
   2:              MatrixTransform CT = (MatrixTransform)rectBig.RenderTransform;
   3:              Maitrís m = ct.Matrix;
   4:              m.OffsetX   = 10;
   5:              m.OffsetY   = 10;
   6:              ct.Matrix = m;
   7:              rectBig.RenderTransform = ct;

Is é an trick anseo nach féidir liom a athrú go díreach OffsetX nó OffsetY.  D'fhéadfadh a bheith ann ar bhealach níos cliste é seo a dhéanamh (agus má tá a fhios agat agus gur mhaith leat, le do thoil an bpost i na tuairimí). 

D'fhonn é seo a dhéanamh, Is gá dom a:

1. Faigh an MatrixTransform na dronuilleoige (le réitigh RenderTransform).

2. Faigh an Maitrís de go Guy.

3. Athraigh fritháireamh ar an Maitrís ar.

4. Athshannadh an Mhaitrís ar ais go dtí an MatrixTransform.

5. Athshannadh an MatrixTransform ais go dtí an Dronuilleog.

Chun tástáil air, Chuir mé dronuilleog agus cnaipe ar an scáileán. Nuair a bheidh mé cliceáil ar an gcnaipe, fhorghníomhú an loighic thuas agus bogann an dronuilleog láithreach.

Ag pointe éigin, Ba mhaith liom buíochas a bheochan seo, ach tá mé aon smaoineamh conas a fháil ar DoubleAnimation a bheith ag obair ar sé (Storyboard.SetTargetProperty() Is ar Mystery dom ar seo de thuras na huaire).

</deireadh>

undefinedLiostáil le mo bhlag.

Lean mé ar Twitter ag http://www.twitter.com/pagalvin

Socrú an Airde na ListboxItems I listbox programmatically le haghaidh 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. Chun na críche sin, Chuir mé listbox mar seo a leanas:

<Listbox x:Ainmnigh ="GameStateLog" HorizontalAlignment ="Ionad" Airde ="221" VerticalAlignment ="Barr" Width ="499" Stuála ="0" FontSize ="10">

 

An C # cód a populate an listbox ag runtime a bhí cosúil leis na:

GameStateLog.Items.Insert(0, GameStateCounter     + ": Stáit cluiche nua: ag fanacht le imreoir 1 ainm");

This worked out fine enough but the UI showed a crazy amount of padding around the individual messages as they were added. Sin a dhéanann ciall más mian liom úsáideoirí deiridh a bheith in ann a roghnú na míreanna seo ach ciall a bhaint as nuair is mian liom ach a thaispeáint sraith reáchtáil teachtaireachtaí loga - ní bheidh úsáideoirí a roghnú na, just view them. Bhí sé strangely deacair a fháil ar bhealach éasca é seo a dhéanamh agus arguably, the way I found it isn’t necessarily “easy” but I got it working OK. Tháinig an léargas eochair as an phost anseo (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) from Bob Relyea. In ionad teaghráin cur leis an mbailiúchán Míreanna ar an listbox, add ListBoxItems. Trí chur ar shraith, the ListBox was creating its own ListBoxItem on its own. I wasn’t able to affect anything about that ListBoxItem after the fact. Tá an cód nua:

        príobháideach neamhní AddGameStateLogMessage(teaghrán theMessage)
        {
            ListBoxItem go = nua ListBoxItem();
            li.Content = theMessage;
            li.MaxHeight = 25;

            Tiús thisPadding = nua Tiús(5, 0, 5, 0);
            li.Padding = thisPadding;

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

 

Here I’m creating ListBoxItem’s and inserting them. Bhaint mé an stuáil de bhreis ag leagan síos a tiús.

Tá sé seo go leor solúbtha agus is féidir liom a bhfuil sé ar intinn a dhéanamh ar roinnt dath códú a aird a tharraingt ar chineálacha áirithe teachtaireachtaí agus ag díreach ListBoxItems chur rachaidh mé chun iad a stíl ar bhealach ar bith is mian liom.

Tá súil Cuidíonn seo duine éigin!

</deireadh>

undefinedLiostáil le mo bhlag.

Lean mé ar Twitter ag http://www.twitter.com/pagalvin