Αρχεία ετικετών: Κατάστημα Windows

Γρήγορη και εύκολη: Ορίστε το μέγεθος από ένα στοιχεία σε ένα πλαίσιο λίστας σε ένα App κατάστημα Windows

Σε ένα App κατάστημα Windows είμαι δημιουργώντας, Θέλω να δείξει στο χρήστη διαφόρων ενημερωτικών μηνυμάτων.  Πήρα ένα πλαίσιο λίστας ως εργαλείου για να δείξει έτσι ώστε αυτοί να διατρέξετε τους και όλη αυτή η καλή ουσία. 

Τα μηνύματα είναι πληροφοριακό μόνο, έτσι δεν υπάρχει καμία ανάγκη να παρέχει όλα τα έξτρα κενό διάστημα γύρω τους, δεδομένου ότι ο χρήστης μπορεί να επιλέξει ποτέ τους για οτιδήποτε.  Η προεπιλεγμένη συμπεριφορά του ListBox παρέχει ένα σημαντικό ποσό γεμίσει και θα ήθελα να απαλλαγούμε από αυτό.  Λοιπόν.... δεν μπορείτε να κάνετε τέτοιου είδους πράγματα σχετικά με το πλαίσιο λίστας άμεσα.  ΩΣΤΌΣΟ, Μπορείτε να το κάνετε με τα στοιχεία που προσθέτετε:

        ιδιωτική άκυρη AddGameStateLogMessage(συμβολοσειρά theMessage)
        {
            Πλαίσιο κειμένου t = νέα Πλαίσιο κειμένου();
            t.Text = GameStateCounter    + ": " + theMessage;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            Πάχος thisPadding = νέα Πάχος(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem li = νέα ListBoxItem();
            Li.Περιεχομένου = t;
            Li.MaxHeight = 25;
            thisPadding = νέα Πάχος(5, 0, 5, 0);
            Li.Αναπλήρωση = thisPadding;

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

στο παραπάνω, Είμαι δημιουργώντας ένα πλαίσιο κειμένου και καθορισμό γραμματοσειρά του, το υλικό παραγεμίσματος, κλπ.

Επόμενη, Μπορώ να δημιουργήσω ένα ListBoxItem και να ορίσετε το περιεχόμενό της να το μορφοποιημένο πλαίσιο κειμένου.

Τέλος, Εισάγω το ListBoxItem σε το πλαίσιο λίστας.  (Θέλω να δείξω πιο πρόσφατα μηνύματα στην κορυφή της λίστας, ως εκ τούτου το ένθετο(0,Li) αντί για μια απλή προσθήκη() επίκληση.).

Θα είναι μικροαλλαγές αυτό λίγο πριν είμαι πραγματικά χαρούμενος με τη συμπεριφορά του πλαισίου λίστας, αλλά το πρότυπο που παρουσιάζεται ανωτέρω υπήρξε πολύ γόνιμη.  Ας ελπίσουμε ότι κάποιος άλλος κρίνει χρήσιμο.

</Τέλος>

undefinedΕγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

Καθορισμό του ύψους της ListboxItems σε ένα πλαίσιο λίστας μέσω προγραμματισμού για το App κατάστημα Windows

Είμαι εργάζονται για μια εφαρμογή των windows κατάστημα και ένα από τα πράγματα που θέλω να κάνω στο app είναι να εμφανίσει ένα αρχείο καταγραφής που δείχνει μηνύματα κατάστασης και άλλο ενημερωτικό μεζέδες όπως την εργασία του χρήστη πράγματα. Για το σκοπό αυτό, Πρόσθεσα ένα πλαίσιο λίστας ως εξής:

<Πλαίσιο λίστας x:Όνομα ="GameStateLog" HorizontalAlignment ="Κέντρο" Ύψος ="221" VerticalAlignment ="Κορυφή" Πλάτος ="499" Αναπλήρωση ="0" FontSize ="10">

 

Ο κώδικας C# για τη συμπλήρωση του πλαισίου λίστας κατά το χρόνο εκτέλεσης που ήταν προς την κατεύθυνση της:

GameStateLog.Items.Insert(0, GameStateCounter    + ": Νέο παιχνίδι κατάσταση: αναμονή για παίκτη 1 Όνομα");

Αυτό λειτούργησε πρόστιμο αρκετά αλλά το UI έδειξε ένα τρελό ποσό των padding γύρω από τα μεμονωμένα μηνύματα όπως προστέθηκαν. Αυτός έχει νόημα, αν θέλουν να είναι σε θέση να επιλέξετε αυτά τα στοιχεία από τους τελικούς χρήστες, αλλά δεν έχει νόημα όταν απλά θέλετε να δείχνει μια τρέχοντας σειρά των μηνυμάτων ημερολογίου-χρήστες δεν θα επιλέξετε αυτά τα, Μόλις τα δείτε. Ήταν παράξενα δύσκολο να βρει έναν εύκολο τρόπο για να γίνει αυτό και αναμφισβήτητα, ο τρόπος που το βρήκα δεν είναι απαραιτήτως "εύκολο" αλλά εγώ το πήρα ηλικία εργασίας OK. Η βασική αντίληψη προήλθε από αυτήν την καταχώρηση Εδώ (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) από Bob Relyea. Αντί για τη συλλογή στοιχείων σχετικά με το πλαίσιο λίστας adding συμβολοσειρές, Προσθήκη ListBoxItems. Προσθέτοντας μια συμβολοσειρά, το πλαίσιο λίστας δημιουργώντας το δικό του ListBoxItem από μόνη της. Ήμουν σε θέση να επηρεάζει τίποτα σχετικά με ListBoxItem ότι μετά από το γεγονός. Ο νέος κώδικας είναι:

        ιδιωτική άκυρη AddGameStateLogMessage(συμβολοσειρά theMessage)
        {
            ListBoxItem li = νέα ListBoxItem();
            Li.Περιεχομένου = theMessage;
            Li.MaxHeight = 25;

            Πάχος thisPadding = νέα Πάχος(5, 0, 5, 0);
            Li.Αναπλήρωση = thisPadding;

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

 

Εδώ τη δημιουργία του ListBoxItem και την εισαγωγή τους. Θα αφαιρεθεί το περιττό υλικό παραγεμίσματος ορίζοντας το πάχος.

Αυτό είναι αρκετά ευέλικτη, όπως σκοπεύω να κάνω κάποια χρωματική κωδικοποίηση για να επισημάνει συγκεκριμένους τύπους μηνυμάτων και προσθέτοντας άμεσα ListBoxItems έχω να τους στυλ οιονδήποτε τρόπο που θέλω.

Ελπίδα αυτό βοηθά κάποιος!

</Τέλος>

undefinedΕγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin