locked
אייטמים ב-gridview מוצגים במרווח של כך וכך פיקסלים איך מבטלים את זה RRS feed

  • שאלה

  • כל ניסיונותיי עלו בתוהו ... ביטלתי את מרווח שוליים (Margin) של האייטם מרווח חיצוני ופנימי(Padding). וכו'. עברתי על כל המאפיינים של ה-gridview ןה-wrapgrid שהוא ה-itemspanel. ואין לי מושג איזה מאפיין זה.

    שים לב! שב- StackPanel אין את הבעיה הזאת.

    יום שלישי 11 דצמבר 2012 16:28

תשובות

  • צבי,

    datatemplate ו-controltemplate הן שתי חיות שונות

    אל תבלבל!

    כפי שכתבתי אתה חייב ליצור controltemplate.


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • סומן כתשובה על-ידי צבי דויטש יום שלישי 18 דצמבר 2012 16:12
    יום שלישי 18 דצמבר 2012 14:25
    מנחה דיון

כל התגובות

  • הי צבי,

    1. התשובה טמונה בתוך ה- Control Template של GridViewItem ולא ב- Style שלו או GridView.
    2. ראה איך ליצור Control Template עבור GridViewItem פה: http://msdn.microsoft.com/en-us/library/windows/apps/xaml/jj709915.aspx
    3. תחפש את האלמנט שנקרא "ContentBorder", תראה שיש לו Margin של "4". תאפס אותו ואולי גם אלמנט אב או אח.
    4. אני ממליץ בחום לעבוד עם Blend. שם יש אפשרות להיכנס אל תוך ה- Control Template ולראות בזמן אמת מה קורה שם בפנים, לשנות ולערוך. זאת דרך פשוטה, יעילה ומהירה לעבודה עם XAML.

    תומר

    http://blogs.microsoft.co.il/blogs/tomershamam

     


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.


    יום שני 17 דצמבר 2012 17:44
    מנחה דיון
  • אני משתמש ב-itemtemplateselector הווה אומר שאני מטפל באופן ידני בDATATEMPLATE של האלמנט. וחוץ מזה אני כתבתי לו מפורשות לגבי האלמנט שלא יהיה מרווח --קוד דוגמא

            protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
            {
    
                GridViewItem gvi = (GridViewItem)container;
                gvi.HorizontalContentAlignment = HorizontalAlignment.Stretch;
                gvi.VerticalContentAlignment = VerticalAlignment.Stretch;
                gvi.Padding = new Thickness(0,0,0,0);
                gvi.Margin = new Thickness(0,0,0,0);
                gvi.BorderThickness = new Thickness(0,0,0,0);
                gvi.BorderBrush = new SolidColorBrush(Windows.UI.Colors.Orange); 
                gvi.Background = new SolidColorBrush(Windows.UI.Colors.Pink);
    //כאן מוסיפים את הטמפלט המתאים להחזרה
    }
    שים לב שאפי' צבעתי את המסגרת כדי לראות איפה היא ולא רואים כלום. הכל מאופס כמו שכתבת וזה לא עזר.??? והטמפלט המוחזר יצרתי בקוד אקסמל ידני (לא מופיע בקוד דוגמא) ללא שום מסגרת.

    צבי דויטש

    יום שלישי 18 דצמבר 2012 14:21
  • צבי,

    datatemplate ו-controltemplate הן שתי חיות שונות

    אל תבלבל!

    כפי שכתבתי אתה חייב ליצור controltemplate.


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • סומן כתשובה על-ידי צבי דויטש יום שלישי 18 דצמבר 2012 16:12
    יום שלישי 18 דצמבר 2012 14:25
    מנחה דיון