דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
dovidD

dovid

@dovid
ניהול
אודות
פוסטים
10.4k
נושאים
186
שיתופים
0
קבוצות
2
עוקבים
33
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • SQL: קביעת רשימת ערכים מותאמת אישית
    dovidD dovid

    לא מבין את השגיאה אבל הקוד השני שלך אמור לעבוד.
    לא רואה סיבה שלא. בדוק היטב את השמות ובמיוחד את הSelectedValuePath.

    פורסם במקור בפורום CODE613 ב15/07/2015 15:27 (+03:00)

    ארכיון code613m

  • SQL: קביעת רשימת ערכים מותאמת אישית
    dovidD dovid

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

    SelectedValueBinding="{Binding Donor}"
    

    וחוץ מזה זה אמור לעבוד.
    שים לב שכל המאפיינים כתובים מדוייק (רגיש לרישיות!).

    פורסם במקור בפורום CODE613 ב14/07/2015 22:03 (+03:00)

    ארכיון code613m

  • SQL: קביעת רשימת ערכים מותאמת אישית
    dovidD dovid

    @avr416

    איך אפשר להכניס תיבה משולבת בתוך הדטהגריד שמחזיקה גם את המזהה וגם את הטקסט מהטבלה השניה?

    DataGridComboBoxColumn.
    צריך להכיר את המאפיינים:
    ItemsSource צריך להכיל את הטבלה השניה (בעלת הארבעה ערכים).
    נניח שיש לה עמודת ID ועמודה Description.

    DisplayMemberPath שם השדה/עמודה בטבלה השניה אותו אתה רוצה שיוצג בתצוגה, היינו Description.
    SelectedValuePath העמודה שתייצג את הSelectedValue. במקרה שלנו UD. כלומר שיפנו למאפיין SelectedValue וישאלו ממנו את ערכו זה יחזיר את הערך מתוך שם העמודה המצויין, וכן להפך: כשיקבעו לSelectedValue ערך, השורה שתיבחר תהיה זו שבעמודה המצויינת הערך מתאים.
    אחרי כן עושים למאפיין SelectedValue בינדינג לעמודה בטבלה הנוכחית שמכילה את הID הנכון במין הארבעה.

    סיבוך קטן...

    פורסם במקור בפורום CODE613 ב09/07/2015 18:57 (+03:00)

    ארכיון code613m

  • בעיה בהצגת הID במתודת ToString
    dovidD dovid

    @avr416

    דוד ל.ט. סליחה על הטרחה לשווא 😢

    שום לשווא. כיף כל פעם.

    @avr416

    ואת המרווח כנראה עושים עם פסיק, נכון?

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

    פורסם במקור בפורום CODE613 ב06/07/2015 15:04 (+03:00)

    ארכיון code613m

  • בעיה בהצגת הID במתודת ToString
    dovidD dovid

    @avr416

    אתה צודק ואני יודע זאת undefined
    לכן כתבתי כך:

    אם ככה היה כתוב לך בקוד מלכתחילה ניסוח שאלתך מעורפל, מנין לנו לדעת שיש שתי ID??

    ובכל אופן התעלומה ממש גדולה אם ככה. כי Id וid זה שתי שמות לכל דבר בC# ולא צריך שום this להבחנה ביניהם (מלבד הבחנה של קריאות). ולא התעצלתי והעתקתי את הקוד שלך ואצלי עובד פרפקט. מה הפשט?

    פורסם במקור בפורום CODE613 ב06/07/2015 14:16 (+03:00)

    ארכיון code613m

  • בעיה בהצגת הID במתודת ToString
    dovidD dovid

    @avr416

    הבעיה שלי היא שהמשתנה ID הוא סטטי (כדי שלכל תורם יהיה מס' סידורי אחר)

    משתנה סטטי (ולמעשה אותו הדבר כל חבר סטטי כמו מאפיין מתודה וכו'), זה אומר שכל המופעים חולקים את אותו המשתנה! הוא לא אישי ופרטי לכל מופע אלא הוא משותף לכולם.
    בעוד שמשתנה רגיל א. קיים רק אחרי שיוצרים מופע, ב. כל מופע יוצר אחד כמוהו נפרד, במשתנה סטטי המשתנה קיים ונגיש ללא יצירת מופע, ומאידך יצירת מופע לא משכפלת אותו ולמעשה הוא משתנה "גלובלי" שנגיש מכל מקום (פר אפליקציה, ובהתאם למציין הגישה שלו. אם זה פרטי אז רק מתוך המחלקה אבל לא משנה מאיזה מופע ולאו דוקא ממופע כמו במקרה של מתודה סטטית ואופרטורים).
    כיון שID אמור לייצג מופע ולא לייצג את המחלקה ממנו המופע נוצר, אי אפשר שהוא יהיה סטטי, ובעצם מה שקורה כעת הוא שכשאתה מציב בID את המספר הבא - כל המופעים יחזירו את אותו המספר (בכלל בC# א"א לכתוב שם של מופע נקודה חבר סטטי אלא שם מחלקה נקודה חבר סטטי, ולכן this.ID אמור להוציא לך שגיאת זמן קמפול).

    זה נכון שבשביל לעקוב אחרי מופעים אחרים של אותו אובייקט זה נוח להשתמש באוסף/משתנה סטטי. אתה יכול לכתוב משתנה בשם CurrentNumber שיהיה סטטי (ויקבל בCounstactor ++ כל פעם) שיכיל את המספר להשמה בID (שלא יהיה סטטי!) הבא. אתה גם יכול לעשות List<> סטטית שתכיל את כל המופעים, ואז תוכל לדעת עוד פרטים על כל המופעים שנוצרו ואף לגשת אליהם מכל מופע ומופע.

    הנה דוגמה:

    class ClassWithAutoNumber
    {
        public ClassWithAutoNumber()
        {
            ID = currNumber++;
        }
        private static int currNumber;  // static. its one variable shared betwwen all instances
        public int ID { get; set; }  //not static!!! its individual created for each instance
    }
    

    פורסם במקור בפורום CODE613 ב06/07/2015 12:30 (+03:00)

    ארכיון code613m

  • חלון כפול בOpenFileDialog
    dovidD dovid

    תמחק את שורה 4.
    אתה קורא לפונקציה ShowDialog() גם בתנאי שאח"כ.

    פורסם במקור בפורום CODE613 ב05/07/2015 20:37 (+03:00)

    ארכיון code613m

  • serialization: קובץ XML עם ג'יבריש
    dovidD dovid

    מעניין מאוד! תודה אברהם.
    חיפשתי מקורות ומצאתי (http://stackoverflow.com/a/267904/1271037).

    הBinarySerialization שונה מאוד מהXML בנקודה זו: הוא ממש מצלם את מצב האובייקט (המשתנים) ובכלל לא ניגש דרך הset של המאפיינים, ואף יצירת האובייקט נעשית בדרך האקרית ללא הפעלת הCounstactor.

    פורסם במקור בפורום CODE613 ב06/07/2015 16:32 (+03:00)

    ארכיון code613m

  • serialization: קובץ XML עם ג'יבריש
    dovidD dovid

    מאוד מענייין מה שאתה כותב. השגיאה הזאת קורה כשהערך גדול מ31? או אפי' פחות? ואיך היה הקוד קודם? נשמע ממש משונה ההבדל בין הבינארי לXML בנושא הזה.

    פורסם במקור בפורום CODE613 ב06/07/2015 14:08 (+03:00)

    ארכיון code613m

  • serialization: קובץ XML עם ג'יבריש
    dovidD dovid

    תראה את הקוד של הסריאליזציה.

    פורסם במקור בפורום CODE613 ב06/07/2015 11:02 (+03:00)

    ארכיון code613m

  • serialization: בינארי או XML?
    dovidD dovid

    בעת בדיקת דברי אברהם בקשר להבדל בין הXML לבינארי לגבי השגיאה בset של property והעידר הצורך בבנאי ללא פרמטרים בבינארי, ההבדל התחדד לי.
    ראיתי את זה שזה מאוד ספציפי לשאלה: http://stackoverflow.com/a/4743878/1271037
    ההבדל הנוסף המשמעותי נמצא בתשובה לשאלה האחרת של אברהם, יעויין: http://code.613m.org/viewtopic.php?f=1&t=808&p=4924#p4924

    פורסם במקור בפורום CODE613 ב06/07/2015 16:33 (+03:00)

    ארכיון code613m

  • האם dll שנכתב ב .net עובד במק / אנדרואיד?
    dovidD dovid

    כיום אפשר.
    פשוט תתקין Visual Studio ותתחיל.
    תראה פה תיעוד רשמי: https://msdn.microsoft.com/en-us/library/dn771552.aspx#NET.

    אבל אני לא אוכל ללוותך בעניין מהעדר ידע וק"ו נסיון.

    פורסם במקור בפורום CODE613 ב03/07/2015 10:14 (+03:00)

    ארכיון code613m

  • הודעת שגיאה כשאני מנסה לקמפל את הפרוייקט
    dovidD dovid

    מאוד משונה.
    אתה מריץ את התוכנה בפני עצמה או דרך הStart Debug של VS?
    בקשר לShowDialog למופע כבר קיים. כנראה שבמהלך הקוד של החלון הנפתח קראת למתודה Close. מתודה זו מחסלת בעצם משאבים שאחראים לתצוגתו של החלון וממילא א"א אח"כ כבר להשתמש בו. ואכן מקובל לעשות new בכה"ג.

    פורסם במקור בפורום CODE613 ב02/07/2015 10:18 (+03:00)

    ארכיון code613m

  • לא מצליח לעשות DataContext ועוד כמה שאלות בWPF
    dovidD dovid

    אברהם בלתי אפשרי לענות ככה על מבול שאלות. אני מבקש: כל שאלה אשכול. מצידי פתח מאה ביום - רק שאלות שמממש תלויות זו בזו באותו הודעה.

    א. הצבה בDataContext נותנת שגיאה:
    תראה את הקוד שעשית, מן הסתם שכחת new.

    ב. אין ברשימה אוטומטית DataCintext כי אם DataContextProperty.
    אתה כנראה כותב שם חלון ולא מופע. אם תכתוב this. או ללא שם בכלל אז תראה DataContext ברשימה.

    ג. העברת מידע בין חלון לחלון. יש כמה וכמה דרכים.

    1. Counstactor, בחלון המשני. בקריאה אילו מהחלון הראשון מעבירים את המידע כפרמטר.
    2. מאפיין ציבורי, בחלון המשני. מציבים בו ערך אחרי שיצרו את החלון (new) לפני הShow.
    3. מאפיין סטטי ציבורי איפושהוא. פחות מומלץ. אבל אפשר לשמור בו הן אובייקט בודד והן מערך או כל אובייקט דוטנטי כמו כל מאפיין ומשתנה מופעי.

    ד. באיזה פקד נוח להשתמש.
    הפקד GridView כולל כבר עריכה והוספת חדשים. מצד שני הוא מרוכב לעיצוב מותאם וללוגיקה. הוא עשיר בתכונות וממילא כבד לשימוש.
    ListBox זה פקד שאני הכי משתמש בו בWPF.

    לא הרחבתי באף תשובה כי זה בלגן. אם משהו לא מובן תתמקד בו ותשאל.

    פורסם במקור בפורום CODE613 ב30/06/2015 13:34 (+03:00)

    ארכיון code613m

  • איך אתם מעצבים טופס בWPF?
    dovidD dovid

    @avr416

    אם הגדרת בresources סטייל של עיצוב ונתת לו שם, מדוע אח"כ כתבת: Style="{StaticResource captions} ולא מספיק לכתוב style=caption?

    כי המילה caption לא מתפרשת בשום דרך כסטייל, אלא משמשת כביטוי שהריסורס בשם זה ישמש כסטייל. אז ביטיים בXAML כותבים בתוך סוגריים כאלו, והסטטיק ריסורס מציין איזה סוג ביטוי כי יש הרבה סוגים.

    פורסם במקור בפורום CODE613 ב05/07/2015 11:32 (+03:00)

    ארכיון code613m

  • איך אתם מעצבים טופס בWPF?
    dovidD dovid

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

    בהצלחה!
    אני ממש שמח שאתה נכנס בכל הכח לכל התחומים הללו. אני בטוח שלא תתחרט.

    פורסם במקור בפורום CODE613 ב03/07/2015 12:34 (+03:00)

    ארכיון code613m

  • איך אתם מעצבים טופס בWPF?
    dovidD dovid

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

    <Grid FlowDirection="RightToLeft" Margin="8">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="0"/> <!-- מיותר -->
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition  />
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition />
            </Grid.ColumnDefinitions>
    
            <Label Grid.ColumnSpan="4" Content="הוסף תורם חדש" HorizontalAlignment="Center" Margin="0,22,0,5"  VerticalAlignment="Center"  HorizontalContentAlignment="Center"  FontWeight="Bold" FontSize="14"/>
            <Label Content="מס' סידורי"  Grid.Column="2"  Grid.Row="2" />
            <Label x:Name="idNumber" Grid.Column="3" Grid.Row="2" FontWeight="Bold"  FontSize="14"/>
            <Label Content="שם פרטי" Grid.Column="2"   Grid.Row="3" />
            <Label Content="שם משפחה" Grid.Column="2" Grid.Row="4"   />
            <TextBox x:Name="firstName" Grid.Column="3"  Grid.Row="3"  />
            <TextBox x:Name="lastName" Grid.Column="3" Grid.Row="4"  />
            <Label Content="מספר טלפון" Grid.Column="2"  Grid.Row="5"  />
            <Label Grid.Column="2"  Grid.Row="6"  Content="כתובת" />
            <TextBox x:Name="telefon" Grid.Row="5" Grid.Column="3"   />
            <TextBox x:Name="adress" Grid.Row="6" Grid.Column="3" />
            <Label Content="מייל" Grid.Column="2" Grid.Row="7"   />
            <TextBox x:Name="eMail" Grid.Column="3" Grid.Row="7"  Text="Email:"/>
            <Label Grid.Row="2" Content="סכום התרומה" MinWidth="50"  />
            <TextBox Grid.Column="1" Grid.Row="2"  x:Name="sum" />
    
            <RadioButton x:Name="frequenci" Grid.Row="3" Content="תרומה חד פעמית"  IsChecked="True"/>
            <RadioButton x:Name="monthly" Grid.Row="4" Content="תרומה חודשית" />
    
            <Label Content="אופן התשלום" Grid.Row="5" />
            <ComboBox Grid.Row="5" Grid.Column="1" IsEnabled="{Binding ElementName=monthly, Path=IsChecked}">
                <ComboBoxItem x:Name="creditCard" Content="כרטיס אשראי" />
                <ComboBoxItem x:Name="directDebit" Content="הוראת קבע"/>
            </ComboBox>
            <Label Content="תאריך חיוב" Grid.Row="6" />
            <TextBox x:Name="datePayBox" Grid.Row="6" Grid.Column="1"  IsEnabled="{Binding ElementName=monthly, Path=IsChecked}"/>
    
            <Grid Grid.Row="8" Grid.ColumnSpan="4" VerticalAlignment="Bottom" MinHeight="90">
                <Button x:Name="addButton" Content="הוסף תורם"  Click="addButton_Click" HorizontalAlignment="Left" Margin="25" Width="125" Padding="8"/>
                <Button Content="חזור למסך הראשי"  Click="BackClick" HorizontalAlignment="Right" Margin="25"  Width="125" Padding="8"/>
            </Grid>
        </Grid>
    

    בשביל ליצור שוליים לתיבות ולטקסט השתמשת בעמודות, ואני לא שמתי בכלל. הגישה שלי זה להגדיר margin לכולם באופן גורף ע" סטייל. אפשר גם להחיל את הסטייל דוקא על עמודה מסויימת של גריד (http://stackoverflow.com/a/853082/1271037). אבל אם כבר מה אני הייתי עושה, לא הייתי עובד עם שורות של גריד.
    כי מאוד מצוי שאתה רוצה לשנות (להוסיף עמודה או שורה באמצע), ואז צריך לעבוד ידנית.
    תראה דוגמה איך אני הייתי עושה עד לא מזמן (את ההגדרה FlowDirection תשמור לאלמנט השורש (window) זה הגדרה נורשת ולא צריך להגדירה שוב ושוב בצאצאים):

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="80"/>
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="21.333" FontWeight="Bold">כותרת</TextBlock>
        <WrapPanel Grid.Row="1" Orientation="Vertical" Margin="10,0"  Grid.IsSharedSizeScope="True">
            <WrapPanel.Resources>
                <Style TargetType="TextBlock" x:Key="captions">
                    <Setter Property="VerticalAlignment" Value="Center" />
                    <Setter Property="Foreground" Value="Indigo" />
                    <Setter Property="Margin" Value="0,0,5,0" />
                </Style>
                <Style TargetType="TextBox" >
                    <Setter Property="VerticalAlignment" Value="Center" />
                    <Setter Property="Width" Value="120" />
                </Style>
                <Style TargetType="Grid">
                    <Setter Property="Height" Value="25" />
                </Style>
            </WrapPanel.Resources>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition SharedSizeGroup="cols"/>
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>
                <TextBlock Style="{StaticResource captions}" >שם פרטי</TextBlock>
                <TextBox Grid.Column="1">שם פרטי</TextBox>
            </Grid>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition SharedSizeGroup="cols"/>
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>
                <TextBlock Style="{StaticResource captions}" >שם פרטי</TextBlock>
                <TextBox Grid.Column="1">שם פרטי</TextBox>
            </Grid>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition SharedSizeGroup="cols"/>
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>
                <TextBlock Style="{StaticResource captions}" >שם פרטי</TextBlock>
                <TextBox Grid.Column="1">שם פרטי</TextBox>
            </Grid>
        </WrapPanel>
    </Grid>
    

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

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="80"/>
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="21.333" FontWeight="Bold">כותרת</TextBlock>
        <WrapPanel Grid.Row="1" Orientation="Vertical" Margin="10,0" Grid.IsSharedSizeScope="True">
            <WrapPanel.Resources>
                <Style TargetType="HeaderedContentControl">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="HeaderedContentControl">
                                <Grid Margin="5,2">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition SharedSizeGroup="cols"/>
                                        <ColumnDefinition />
                                    </Grid.ColumnDefinitions>
                                    <TextBlock Text="{TemplateBinding Header}" Foreground="Indigo" Margin="10,0"/>
                                    <ContentPresenter Grid.Column="1"/>
                                </Grid>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
                <Style TargetType="TextBox" >
                    <Setter Property="VerticalAlignment" Value="Center" />
                    <Setter Property="Width" Value="120" />
                </Style>
            </WrapPanel.Resources>
            <HeaderedContentControl Header="מס' תורם" Content="12569" />
            <HeaderedContentControl Header="שם פרטי" >
                <TextBox />
            </HeaderedContentControl>
            <HeaderedContentControl Header="שם משפחה" >
                <TextBox />
            </HeaderedContentControl>
            <HeaderedContentControl Header="טלפון" >
                <TextBox />
            </HeaderedContentControl>
        </WrapPanel>
    </Grid>
    

    הנה לינקים לעימוד נכון בWPF:
    http://blogs.msdn.com/b/wpfsldesigner/archive/2010/06/03/layout-techniques-for-windows-forms-developers.aspx
    http://www.codeproject.com/Articles/203946/WPF-Layout-by-Content

    אבל שוב, אני נחשב מתחיל, וWPF לא בנוי טוב למתחילים :). תראה למשל דוגמה מהאינטרנט שבנויה חזק ו"גנרי":
    https://karlshifflett.wordpress.com/2008/10/23/wpf-silverlight-lob-form-layout-searching-for-a-better-solution/

    פורסם במקור בפורום CODE613 ב03/07/2015 12:28 (+03:00)

    ארכיון code613m

  • איך אתם מעצבים טופס בWPF?
    dovidD dovid

    אגב אשמח לעצב לך אם יש לך זמן לצייר מה שאתה מעוניין, ולהעלות את התמונה לפה.

    פורסם במקור בפורום CODE613 ב02/07/2015 12:29 (+03:00)

    ארכיון code613m

  • איך אתם מעצבים טופס בWPF?
    dovidD dovid

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

    פורסם במקור בפורום CODE613 ב02/07/2015 12:26 (+03:00)

    ארכיון code613m

  • איך אתם מעצבים טופס בWPF?
    dovidD dovid

    העצה היא ללמוד 🙂 🙂

    בWPF יש מחלקה ששמה Panel. היא ורק היא מספקת את היכולת להכיל יותר מאלמנט אחד, ולסדר אותם.
    המחלקה הזו אבסטרקטית - היא אפשר להשתמש בה ישירות ללא ירושה. המחלקות שיורשות ממנה הם:
    Canavas
    Grid
    StackPanel
    WrapPanel
    DockPanel
    יש עוד כמה אבל אלו העיקריים.

    הפאנלים הללו יכולים להכיל כמה אלמנטיo שרוצים, כצורת הסידור שלהם היא באחריות הפאנל. לכל אחד מהם יש צורה אחרת האופיינית לו. בשביל לתת הוראות סדר ברמת אלמנט ולא ברמת הפאנל, יש לכל אלמנט את מאפייני הסידור הבאים:

    1. Width Height - קביעת גובה ורוחב. מקבלים ערך "אין סוף" שכוונתו אוטומטי, ואז הסידור הוא בהתאם למאפיינים ב3.
    2. ActualWidth ActualHeight - מאפיינים לקריאה בלבד שהאלמנט מחזיר אחרי שהפאנל "אמר לו" איפה ואיך להתמקם. זה יכול להיות שונה ממה שהוא היה רוצה, נכול להמליץ על כך שזה הפער בין הרצוי למצוי או התנגשות קלה בין רצון האזרח לרצון הממשלה...
    3. HorizontalAlignment VerticalAlignment - יישור: מינימום (לפי התוכן)-אמצע או קצה, או מקסימום. אפקטיבי במידה ויש ערך אוטומטי לגובה או לרוחב.
    4. MaxWidth MaxHeight MinWidth MinHeight - קביעת מקסימום ומינימום.
    5. Visibilty - מקבל מלבד גלוי ונסתר ערך Collapsed שזה גורם שהאלמנט לא תופס מקום.

    כל פאנל יכול לכבד את המאפיינים הללו אך יכול להתעלם מהוראות שלא רלוונטיות לאופי הסידור שלו. למשל, StackPanel אנוכי, תמיד מכווץ את הפקדים לפי תוכנם אפי' אם הHorizontalAlignment שלהם מוגד לStretc - מתיחה לגודל מקסימלי. אתה יכול ליצור גם panel משלך ושם תהיה דיקטטור בקטע הזה :).

    אני יודע שלא עניתי לך כלום, אך מאידך השאלה המעורפלת זעקה לסדר ולא לתשובה 🙂

    פורסם במקור בפורום CODE613 ב30/06/2015 14:01 (+03:00)

    ארכיון code613m
  • 1 / 1
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום