Categorie Archieven: Windows winkel

Snel en eenvoudig: Instellen van de grootte van een Items in een keuzelijst in een App Store voor Windows

In een Windows Store App ben ik het creëren van, Ik wil laten zien van de gebruiker verschillende informatieve berichten.  Ik pakte een ListBox als het instrument om te laten zien, zodat ze via hen en al dat goede materiaal schuiven kunnen. 

De berichten zijn alleen informatief, dus er is geen behoefte om al dat extra witruimte rond hen aangezien de gebruiker ze nooit voor om het even wat kunt selecteren.  Het standaardgedrag van de ListBox biedt een aanzienlijke hoeveelheid opvulling en ik wilde om zich te ontdoen van het.  Goed.... u kunt niet dat soort ding op de ListBox rechtstreeks.  ECHTER, u kunt dit doen op de items die u toevoegt:

        privé VOID AddGameStateLogMessage(tekenreeks theMessage)
        {
            TextBox t = Nieuw TextBox();
            t.Text = GameStateCounter    + ": " + theMessage;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            Dikte thisPadding = Nieuw Dikte(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem li = Nieuw ListBoxItem();
            Li.Inhoud = t;
            Li.MaxHeight = 25;
            thisPadding = Nieuw Dikte(5, 0, 5, 0);
            Li.Opvulling = thisPadding;

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

in het bovenstaande, Ik ben een tekstvak maken en instellen van het lettertype, de opvulling, etc.

Volgende, Ik maak een ListBoxItem en stel de inhoud op de opgemaakte TextBox.

Tot slot, Ik invoegen de ListBoxItem in de ListBox.  (Ik wil laten zien van de meest recente berichten op de top van de lijst, Vandaar de invoegen(0,Li) in plaats van een eenvoudige toevoegen() inroepen.).

Ik zal worden tweaken dit een beetje voordat ik echt blij met de ListBox gedrag ben maar het patroon hierboven is zeer vruchtbaar geweest.  Hopelijk vindt iemand anders het nuttig.

</einde>

undefinedAbonneren op mijn blog.

Volg mij op Twitter op http://www.twitter.com/pagalvin

Snel en eenvoudig: Een rechthoek met behulp van C# In een App Store van Windows verplaatsen

Mijn algemene blog filosofie is dat het is perfect in orde om een blog over oude, geregeld onderwerpen die ter dood elders zijn behandeld.  Ik neem aan dat dit onderwerp is een van die, maar ik ben bloggen het toch.

Ik heb gewerkt aan een venster Opslag app en ik ben op het deel waar mij nood voor verrichten sommige animeren.  Te dien einde, Ik heb al uitzoeken bits en stukken van windows opgeslagen app animatie die, het blijkt dat, is heel dicht bij, maar niet precies zoals, XAML gebaseerd animaties in .NET (Ik ben nog steeds vat te krijgen op het feit dat WinRT <> .NET 🙂 ).

Vanmorgen ik wilde krijgen greep op slepen en neerzetten operaties.  Onderweg naar die, Ik kreeg verzanden in plaats daarvan een rechthoek verplaatsen :).  Hier is de code die een rechthoek wordt verplaatst wanneer de gebruiker op een knop klikt:

   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;

De truc hier is dat ik direct OffsetX of OffsetY niet wijzigen.  Kan er een meer slimme manier om dit te doen (en als u weet en voelt zoals, Gelieve te posten in de commentaren). 

Om dit te doen, Ik nodig om te:

1. Krijgen van de MatrixTransform van de rechthoek (door het gieten van RenderTransform).

2. Krijgen de Matrix van die kerel.

3. De Matrix offsets wijzigen.

4. Opnieuw toewijzen van de Matrix terug naar de MatrixTransform.

5. Opnieuw toewijzen van de MatrixTransform terug naar de rechthoek.

Om het te testen, Ik zette een rechthoek en het scherm knop. Wanneer ik klik op de knop, de bovenstaande logica voert en beweegt de rechthoek onmiddellijk.

Op een bepaald punt, Ik wil animatie toevoegen aan dit, maar ik heb geen idee hoe te krijgen een DoubleAnimation om te werken aan het (Storyboard.SetTargetProperty() wordt een mysterie voor me op dit voor de tijd).

</einde>

undefinedAbonneren op mijn blog.

Volg mij op Twitter op http://www.twitter.com/pagalvin

Instellen van de hoogte van ListboxItems In een ListBox via programmacode voor Windows opslag App

Ik ben bezig met een toepassing van de opslag van windows en een van de dingen die ik wil doen in de app is een logboek waarin statusberichten en andere informatieve lekkernijen als de gebruiker dingen werkt weergeven. Te dien einde, Ik voegde een ListBox als volgt:

<ListBox x:Naam ="GameStateLog" HorizontalAlignment ="Center" Hoogte ="221" VerticalAlignment ="Boven" Breedte ="499" Opvulling ="0" Tekengrootte (FontSize) ="10">

 

De C#-code om te vullen de listbox tijdens runtime was langs de lijnen van:

GameStateLog.Items.Insert(0, GameStateCounter    + ": Nieuwe spel staat: speler wacht 1 naam");

Dit werkte goed genoeg maar de UI toonde een gek bedrag van opvulling rond de afzonderlijke berichten zoals ze zijn toegevoegd. Dat is logisch als ik wil eind-de gebruikers kunnen om deze items te selecteren, maar houdt geen steek wanneer ik wil gewoon laten zien een lopende reeks van berichten in het logboek-gebruikers deze zal niet selecteren, alleen te bekijken. Het was vreemd moeilijk te vinden een eenvoudige manier om dit te doen en misschien wel, de manier waarop ik vond het niet noodzakelijkerwijs "gemakkelijk" maar ik heb het werkt OK. Het belangrijkste inzicht kwam uit dit bericht Hier (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) van Bob Relyea. In plaats van tekenreeksen toevoegen aan de Items-collectie op de ListBox, ListBoxItems toevoegen. Door het toevoegen van een string, ListBox was het creëren van zijn eigen ListBoxItem op eigen. Ik was niet in staat te beïnvloeden om het even wat over dat ListBoxItem na het feit. De nieuwe code is:

        privé VOID AddGameStateLogMessage(tekenreeks theMessage)
        {
            ListBoxItem li = Nieuw ListBoxItem();
            Li.Inhoud = theMessage;
            Li.MaxHeight = 25;

            Dikte thisPadding = Nieuw Dikte(5, 0, 5, 0);
            Li.Opvulling = thisPadding;

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

 

Hier ben ik het creëren van de ListBoxItem en het invoegen van hen. Ik verwijderde de overtollige opvulling door in te stellen de dikte.

Dit is vrij flexibel als ik denkt te doen wat kleur codering om te markeren van bepaalde soorten berichten en door direct toe te voegen ListBoxItems krijg ik om de stijl van hen elke gewenste.

Hoop dat dit helpt iemand!

</einde>

undefinedAbonneren op mijn blog.

Volg mij op Twitter op http://www.twitter.com/pagalvin