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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. WPF קינון פקדים בראש שורה בדטה-גריד

WPF קינון פקדים בראש שורה בדטה-גריד

מתוזמן נעוץ נעול הועבר ארכיון code613m
13 פוסטים 2 כותבים 703 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • רחמיםר מנותק
    רחמיםר מנותק
    רחמים מורחק
    כתב ב נערך לאחרונה על ידי
    #2

    ראיתי פה שמישהו ניסה להביא פתרון, אבל לא הצלחתי ליישם אותו עם הקוד הנ''ל.

    פורסם במקור בפורום CODE613 ב27/12/2013 10:39 (+02:00)

    תגובה 1 תגובה אחרונה
    0
    • רחמיםר מנותק
      רחמיםר מנותק
      רחמים מורחק
      כתב ב נערך לאחרונה על ידי
      #3

      אני חושב שיש לי פתרון:

      1. אפשר להגדיר שהלחצן שבראש השורה יהיה בתוך גריד צמוד לחלק העליון של הגריד, אם גובה הגריד יהיה כגובה השורה הרי שהלחצן יהיה תמיד באותו מקום ולא ירד לאמצע.
      2. כדי לשנות את גובה הגריד כאשר גובה השורה משתנה יש ארוע שינוי גובה שורה שאפשר ליצור כמתואר כאן.

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

      <DataGrid.RowHeaderTemplate>
                      <DataTemplate>
                          <Grid                 
                              Height="{Binding RelativeSource={RelativeSource FindAncestor, 
                              AncestorType=DataGridRow, AncestorLevel=1}, 
                              Path=ActualHeight}" 
                              Background="#FFD31C1C">
      
                              <Button Content="+" VerticalAlignment="Top" >
                              </Button>
                          </Grid>
                         
                      </DataTemplate>
                  </DataGrid.RowHeaderTemplate>
      

      פורסם במקור בפורום CODE613 ב31/12/2013 13:20 (+02:00)

      תגובה 1 תגובה אחרונה
      0
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        כתב ב נערך לאחרונה על ידי
        #4

        הקישור שהבאת היה מצויין.
        הנה דרך קלה ליצור טמפלט כמו שהובאה שם:
        כתוב בתוך הXAML שלך במקום פנוי את השורה הזאת:

        <DataGridRowHeader />
        

        בחלונית Document Outline תקליק בימיני על האלמנט הזה DataGridRowHeader,
        לחץ על Edit Template ואז Edit a Copy.
        בתיבת הדו שיח בחר בDefinen In בApplication.
        אחרי היצירה מחק מהשורה הראשונה את הx:Key עם הערך.
        לאחמ"כ אתר את השורה הזאת:

        <ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Center"/>
        

        בסוף השורה החלף אתCenter לTop.

        כעת תוכל למחוק את האלמנט DataGridRowHeader הריק שיצרת.

        פורסם במקור בפורום CODE613 ב31/12/2013 15:49 (+02:00)

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        תגובה 1 תגובה אחרונה
        0
        • רחמיםר מנותק
          רחמיםר מנותק
          רחמים מורחק
          כתב ב נערך לאחרונה על ידי
          #5

          כשאני לוחץ עם הימני של העכבר ב Document Outline לא יוצא לי שום תפריט, יש לי VS 2010

          פורסם במקור בפורום CODE613 ב31/12/2013 17:36 (+02:00)

          תגובה 1 תגובה אחרונה
          0
          • dovidD מנותק
            dovidD מנותק
            dovid ניהול
            כתב ב נערך לאחרונה על ידי
            #6

            אהה, זה אכן לא קיים בגירסה זו.
            (בWPF, יש שיפורי UI משמעותיים ב2013. למה אתה לא עובר? גם בשאר הIDE יש צופרים).
            כשיהיה לי זמן אעלה לך את כל הXAML שהוא יוצר.

            פורסם במקור בפורום CODE613 ב02/01/2014 14:31 (+02:00)

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            תגובה 1 תגובה אחרונה
            0
            • רחמיםר מנותק
              רחמיםר מנותק
              רחמים מורחק
              כתב ב נערך לאחרונה על ידי
              #7

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

              פורסם במקור בפורום CODE613 ב02/01/2014 15:31 (+02:00)

              תגובה 1 תגובה אחרונה
              0
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                כתב ב נערך לאחרונה על ידי
                #8

                זה לא סותר תשתמש בשתיהם...

                הנה הXAML:

                <Style xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero" TargetType="{x:Type DataGridRowHeader}">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type DataGridRowHeader}">
                                <Grid>
                                    <Themes:DataGridHeaderBorder BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" IsPressed="{TemplateBinding IsPressed}" IsHovered="{TemplateBinding IsMouseOver}" IsSelected="{TemplateBinding IsRowSelected}" Orientation="Horizontal" Padding="{TemplateBinding Padding}" SeparatorBrush="{TemplateBinding SeparatorBrush}" SeparatorVisibility="{TemplateBinding SeparatorVisibility}">
                                        <StackPanel Orientation="Horizontal">
                                            <ContentPresenter RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Top"/>
                                            <Control SnapsToDevicePixels="false" Template="{Binding ValidationErrorTemplate, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}" Visibility="{Binding (Validation.HasError), Converter={StaticResource bool2VisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}"/>
                                        </StackPanel>
                                    </Themes:DataGridHeaderBorder>
                                    <Thumb x:Name="PART_TopHeaderGripper" Style="{StaticResource RowHeaderGripperStyle}" VerticalAlignment="Top"/>
                                    <Thumb x:Name="PART_BottomHeaderGripper" Style="{StaticResource RowHeaderGripperStyle}" VerticalAlignment="Bottom"/>
                                </Grid>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
                

                תדביק את זה בApplication.xaml כך זה יחול על הכל בכל.

                פורסם במקור בפורום CODE613 ב02/01/2014 16:48 (+02:00)

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                תגובה 1 תגובה אחרונה
                0
                • רחמיםר מנותק
                  רחמיםר מנותק
                  רחמים מורחק
                  כתב ב נערך לאחרונה על ידי
                  #9

                  @דוד ל.ט.

                  Application.xaml

                  מדובר בפרוייקט DLL ואין שם את זה, יש איזו חלופה?

                  בנתיים שמתי בתוך הUSER FORM ואלו השגיאות שקיבלתי:
                  The resource "bool2VisibilityConverter" could not be resolved.
                  The resource "RowHeaderGripperStyle" could not be resolved.

                  פורסם במקור בפורום CODE613 ב02/01/2014 17:58 (+02:00)

                  תגובה 1 תגובה אחרונה
                  0
                  • dovidD מנותק
                    dovidD מנותק
                    dovid ניהול
                    כתב ב נערך לאחרונה על ידי
                    #10

                    מעניין שהשגיאות רק על זה.
                    נסה שוב, הוספתי ניימספייס.

                    פורסם במקור בפורום CODE613 ב02/01/2014 19:32 (+02:00)

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                    תגובה 1 תגובה אחרונה
                    0
                    • רחמיםר מנותק
                      רחמיםר מנותק
                      רחמים מורחק
                      כתב ב נערך לאחרונה על ידי
                      #11

                      רפרנס ל PresentationFramework.Aero וניימספייס כבר הוספתי בתחילה ולכן לא היו אלא רק שני שגיאות שציינתי.

                      פורסם במקור בפורום CODE613 ב02/01/2014 19:44 (+02:00)

                      תגובה 1 תגובה אחרונה
                      0
                      • dovidD מנותק
                        dovidD מנותק
                        dovid ניהול
                        כתב ב נערך לאחרונה על ידי
                        #12

                        מקווה שכעת טוב.

                        <Style  TargetType="{x:Type DataGridRowHeader}">
                            <Setter Property="Template">
                                <Setter.Value>
                                    <ControlTemplate TargetType="{x:Type DataGridRowHeader}">
                                        <Grid>
                                            <Themes:DataGridHeaderBorder BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" IsPressed="{TemplateBinding IsPressed}" IsHovered="{TemplateBinding IsMouseOver}" IsSelected="{TemplateBinding IsRowSelected}" Orientation="Horizontal" Padding="{TemplateBinding Padding}" SeparatorBrush="{TemplateBinding SeparatorBrush}" SeparatorVisibility="{TemplateBinding SeparatorVisibility}">
                                                <StackPanel Orientation="Horizontal">
                                                    <ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Top"/>
                                                    <Control SnapsToDevicePixels="False" Template="{Binding ValidationErrorTemplate, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type DataGridRow}}}">
                                                        <Control.Visibility>
                                                            <Binding Path="(Validation.HasError)" RelativeSource="{RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type DataGridRow}}">
                                                                <Binding.Converter>
                                                                    <BooleanToVisibilityConverter/>
                                                                </Binding.Converter>
                                                            </Binding>
                                                        </Control.Visibility>
                                                    </Control>
                                                </StackPanel>
                                            </Themes:DataGridHeaderBorder>
                                            <Thumb x:Name="PART_TopHeaderGripper" VerticalAlignment="Top">
                                                <Thumb.Style>
                                                    <Style TargetType="{x:Type Thumb}">
                                                        <Setter Property="Height" Value="8"/>
                                                        <Setter Property="Background" Value="Transparent"/>
                                                        <Setter Property="Cursor" Value="SizeNS"/>
                                                        <Setter Property="Template">
                                                            <Setter.Value>
                                                                <ControlTemplate TargetType="{x:Type Thumb}">
                                                                    <Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}"/>
                                                                </ControlTemplate>
                                                            </Setter.Value>
                                                        </Setter>
                                                    </Style>
                                                </Thumb.Style>
                                            </Thumb>
                                            <Thumb x:Name="PART_BottomHeaderGripper" VerticalAlignment="Bottom">
                                                <Thumb.Style>
                                                    <Style TargetType="{x:Type Thumb}">
                                                        <Setter Property="Height" Value="8"/>
                                                        <Setter Property="Background" Value="Transparent"/>
                                                        <Setter Property="Cursor" Value="SizeNS"/>
                                                        <Setter Property="Template">
                                                            <Setter.Value>
                                                                <ControlTemplate TargetType="{x:Type Thumb}">
                                                                    <Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}"/>
                                                                </ControlTemplate>
                                                            </Setter.Value>
                                                        </Setter>
                                                    </Style>
                                                </Thumb.Style>
                                            </Thumb>
                                        </Grid>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                        </Style>
                        

                        פורסם במקור בפורום CODE613 ב05/01/2014 13:23 (+02:00)

                        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                        בכל נושא אפשר ליצור קשר dovid@tchumim.com

                        תגובה 1 תגובה אחרונה
                        1
                        • רחמיםר מנותק
                          רחמיםר מנותק
                          רחמים מורחק
                          כתב ב נערך לאחרונה על ידי
                          #13

                          יישר גדול ועצום!!
                          סוף סוף הגליונות נראים כמו 'בן אדם' :smile:

                          פורסם במקור בפורום CODE613 ב05/01/2014 13:45 (+02:00)

                          תגובה 1 תגובה אחרונה
                          0

                          בא תתחבר לדף היומי!
                          • התחברות

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

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