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

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

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

WPF הוספת tooltip ל-Header בתוך style

מתוזמן נעוץ נעול הועבר ארכיון code613m
16 פוסטים 2 כותבים 1.2k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • T מנותק
    T מנותק
    tkt
    כתב ב נערך לאחרונה על ידי
    #3

    במקרה ויש טקסט מידי ארוך לטאב יש גודל מקסימלי ואז הטקס חתוך. ב-chrome הפתרון הוא tooltip ורציתי לחקות את אותה התנהגות.

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

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

      איפה ניסית לשים את השורה הזו:

      ToolTip="{TemplateBinding Header}"
      

      ?

      נסי לשים אותה בתוך שורת הפתיחה של הControlTemplate (שורה רביעית).
      קשה לי להבין מה קורה שם בדיוק, אולי אני צריך לבדוק את הChromTab הזה.
      מחר אולי יהיה לי זמן.

      פורסם במקור בפורום CODE613 ב07/07/2013 16:54 (+03:00)

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

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

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

        אני שמתי את השורה הזו בהגדרה של ה-label:
        <Label Margin="10 0 0 0" VerticalAlignment="Center" Content="{TemplateBinding Header}" [u:1j4sfrr9]ToolTip="{Binding Content.Text}"[/u:1j4sfrr9] Grid.Column="1" />
        אי אפשר לשים את זה בשורה הרביעית, הוא נותן שגיאה:
        The property 'ToolTip' was not found in type 'ControlTemplate'.

        פורסם במקור בפורום CODE613 ב07/07/2013 20:39 (+03:00)

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

          נכון, אני טעיתי מה פתאום ToolTip בControlTemplate.
          אבל באלמנט הגריד (שורה מתחת) זה אמור לעבוד.
          תחליפי את <Grid> ב

          <Grid ToolTip="{TemplateBinding Header}">
          

          פורסם במקור בפורום CODE613 ב08/07/2013 11:49 (+03:00)

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

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

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

            זה באמת הוסיף את ה-tooltip אבל אם היה header שהוגדר כך (מכיל טקסט + תמונה קטנה):

            <tabs:ChromeTabItem.Header>
                <StackPanel Orientation="Horizontal">
                     <Image Source="..\Images\questionnare.ico"/>
                     <TextBlock Text="שאלון"/>
                </StackPanel>
            </tabs:ChromeTabItem.Header>
            

            אז ברגע שה -tooltip מופיע, ה-header נהיה ריק והתוכן שלו לא חוזר גם בהמשך, הערך ב-tooltip נשאר.
            (אותה התנהגות קוראת גם אם אני שמה את השורה הזו בהגדרה של ה-label במיקום שהראיתי למעלה)

            ממש לא ברור לי למה, זה נראה כאילו ה-tooltip שאב ממנו את התוכן של ה-header.

            פורסם במקור בפורום CODE613 ב08/07/2013 12:39 (+03:00)

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

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

              הנה המחשה חיה:

              <Button x:Name="Bt1" HorizontalAlignment="Left" Margin="269,194,0,0" VerticalAlignment="Top" Width="75">
                   <TextBlock Text="123" />
              </Button>
              <Button Content="{Binding Content, ElementName=Bt1}" HorizontalAlignment="Left" Margin="269,219,0,0" VerticalAlignment="Top" Width="75" />
              

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

              <TabItem.HeaderTemplate>
                  <DataTemplate>
                      <StackPanel Orientation="Horizontal">
                          <Image Source="..\Images\questionnare.ico"/>
                          <TextBlock Text="{TemplateBinding Content}"/>
                      </StackPanel>
                  </DataTemplate>
              </TabItem.HeaderTemplate>
              

              ואז באלמנט TabItem תכתבי Header="שאלון...".
              אז הטולטיפ יציג רק טקסט.
              אם את רוצה שהטולטיפ יהיה בדיוק כמו הHeader, תעתיקי את הטמפלט הנ"ל לטולטיפ.טמפלט.
              נשמח לשמוע תוצאות.

              פורסם במקור בפורום CODE613 ב08/07/2013 13:37 (+03:00)

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

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

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

                לא כל כך הבנתי איפה לשים את ה-HeaderTemplate. ניסיתי לשים אותו בהגדרות של ה-tabitem כך:

                <tabs:ChromeTabItem Header="שאלון " >
                    <tabs:ChromeTabItem.HeaderTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal">
                                <Image Source="..\Images\questionnare.ico"/>
                                <TextBlock Text="{TemplateBinding Content}" />
                             </StackPanel>
                         </DataTemplate>
                </tabs:ChromeTabItem.HeaderTemplate>
                

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

                פורסם במקור בפורום CODE613 ב10/07/2013 12:56 (+03:00)

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

                  מעניין.
                  אגב למה בהרצה? בזמן עיצוב לא מופיע כלום?

                  פורסם במקור בפורום CODE613 ב10/07/2013 16:15 (+03:00)

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

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

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

                    כן גם בזמן design אני לא רואה את ה-icon.

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

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

                      סתם בשביל הטסט,
                      מה קורה שאת מורידה לגמרי את השורה של הטקסטבוקס בטמפלט,
                      ומשאירה רק את האייקון?

                      פורסם במקור בפורום CODE613 ב10/07/2013 21:41 (+03:00)

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

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

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

                        זה לא מזיז לו! נשאר לי ה-header (גם ב-designer וכמובן בהרצה)
                        נראה שהוא בכלל לא משתמש ב-headerTamplate

                        פורסם במקור בפורום CODE613 ב10/07/2013 23:26 (+03:00)

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

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

                          <Label Margin="10 0 0 0" VerticalAlignment="Center" Content="{TemplateBinding Header}" 
                          Grid.Column="1" />
                          

                          תחליפי בזו:

                          <ContentPresenter Margin="10 0 0 0" VerticalAlignment="Center"  Grid.Column="1"
                           Content="{TemplateBinding HeaderedContentControl.Header}" ContentTemplate="{TemplateBinding HeaderedContentControl.HeaderTemplate}" ContentStringFormat="{TemplateBinding HeaderedContentControl.HeaderStringFormat}" ContentSource="Header" />
                          

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

                          פורסם במקור בפורום CODE613 ב11/07/2013 19:52 (+03:00)

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

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

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

                            שכחתי להוסיף את הטולטיפ,
                            אז בשביל טולטיפ זהה לHeader, במקום השורה דלעיל שימי את זה:

                            <ContentPresenter Margin="10 0 0 0" VerticalAlignment="Center" Grid.Column="1" Content="{TemplateBinding HeaderedContentControl.Header}" ContentTemplate="{TemplateBinding HeaderedContentControl.HeaderTemplate}" ContentStringFormat="{TemplateBinding HeaderedContentControl.HeaderStringFormat}" ContentSource="Header">
                                <ContentPresenter.ToolTip>
                                    <ContentControl Content="{TemplateBinding Header}" ContentTemplate="{TemplateBinding HeaderedContentControl.HeaderTemplate}" />
                                </ContentPresenter.ToolTip>
                            </ContentPresenter>
                            

                            פורסם במקור בפורום CODE613 ב11/07/2013 20:08 (+03:00)

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

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

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

                              זה עובד מעולה!
                              תודה רבה

                              פורסם במקור בפורום CODE613 ב11/07/2013 20:36 (+03:00)

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

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

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

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