תג ארכיון: חנות Windows

מהיר וקל: הגדר את גודל הפריטים בתיבת רשימה ב- App Windows Store

ב- App Store Windows אני יוצר, אני רוצה להראות המשתמש הודעות אינפורמטיביות שונות.  אספתי רשימה של הכלי להראות את זה. כך הם יכולים לגלול דברים אותם ואת כל כך טובה. 

ההודעות הן אינפורמטיביות בלבד, כך שאין צורך לספק רווח לבן נוספת סביבם מאז המשתמש יכול לבחור לא אותם לכל דבר.  התנהגות ברירת המחדל של תיבת הרשימה מספק כמות משמעותית של ריפוד, רציתי להיפטר ממנו.  ובכן.... אתה לא יכול לעשות דברים כאלה על תיבת הרשימה ישירות.  עם זאת, תעשה את זה על הפריטים שתוסיף:

        פרטי void AddGameStateLogMessage(מחרוזת הודעה משפיעות)
        {
            תיבת טקסט t = חדש תיבת טקסט();
            t.Text = GameStateCounter     + ": " + הודעה משפיעות;
            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מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

הגדרת גובה ListboxItems רשימה באופן תוכניתי עבור Windows בחנות App

. אני עובד על יישום חנות windows וזה אחד הדברים שאני רוצה לעשות ב- app להציג יומן מציגה הודעות מצב, tidbits מידע אחרים כמו המשתמש עובד דברים. למטרה זו, הוספתי רשימה כדלקמן:

<הרשימה x:שם ="GameStateLog" HorizontalAlignment ="מרכז" גובה ="221" VerticalAlignment ="העליון" רוחב ="499" ריפוד ="0" גודל ="10">

 

קוד C# לאכלוס הרשימה בזמן ריצה הייתה בכיוון של:

GameStateLog.Items.Insert(0, GameStateCounter     + ": מצב משחק חדש: מחכה לשחקן 1 שם");

זה עבד בסדר מספיק אבל ממשק המשתמש הראו בכמות מטורפת של ריפוד מסביב הודעות בודדות בעת הוספתם. זה הגיוני אם אני רוצה משתמשי קצה היכולת לבחור פריטים אלה, אבל זה לא יהיה הגיוני. אני רק רוצה להראות סדרת הודעות יומן הריצה – משתמשים לא לבחור את אלה, רק להציגם. . זה היה מוזר שקשה למצוא דרך קלה לעשות את זה, וללא ספק., הדרך מצאתי את זה לא בהכרח "קל" אבל לי זה עובד בסדר. התובנה מפתח בא פרסום זה כאן (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) של בוב Relyea. במקום להוסיף מחרוזות לאוסף הפריטים על הרשימה, הוספת ListBoxItems. על-ידי הוספת מחרוזת, תיבת הרשימה הייתה יצירת משלו ListBoxItem בכוחות עצמו. לא הייתי מסוגל להשפיע על משהו על זה ListBoxItem לאחר מעשה. הקוד החדש הוא:

        פרטי void AddGameStateLogMessage(מחרוזת הודעה משפיעות)
        {
            ListBoxItem li = חדש ListBoxItem();
            li.תוכן = הודעה משפיעות;
            li.MaxHeight = 25;

            עובי thisPadding = חדש עובי(5, 0, 5, 0);
            li.ריפוד = thisPadding;

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

 

כאן אני יוצר של ListBoxItem והכנסת אותם. הסרתי את הריפוד עודף על-ידי הגדרת את עוביו.

. זה די גמיש כמו שאני מתכוון לעשות קצת צבע קידוד כדי לסמן סוגים מסוימים של הודעות על-ידי הוספת ישירות ListBoxItems אני מקבל סגנון אותם בכל דרך שארצה.

מקווה שזה עוזר למישהו!

</קצה>

undefinedמנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin