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

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

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

WPF פקדים מותאמים אישית עם XAML

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

    עשיתי פקד כזה:

    <TabControl x:Class="myTab"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                 mc:Ignorable="d" 
                 d:DesignHeight="300" d:DesignWidth="300">
        
        <Grid>
                
        </Grid>
    </TabControl>
    

    הקוד שלו נראה בדיוק כך:

    Public Class myTab
        Inherits TabControl
    
    End Class
    

    הוספתי אותו לחלון:

    <Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="242" Width="401" xmlns:my="clr-namespace:WpfApplication1">
        <Grid>
            <my:myTab Height="100" HorizontalAlignment="Left" Margin="10,10,0,0" x:Name="MyTab1" VerticalAlignment="Top" Width="200">
                <TabItem Header="TabItem1" Name="TabItem1">
                    <Grid />
                </TabItem>
            </my:myTab>
        </Grid>
    </Window>
    

    אבל כאשר באתי להריץ קיבלתי הודעה כזו:

    Error	1	Cannot set Name attribute value 'TabItem1' on element 'TabItem'. 'TabItem' is under the scope of element 'myTab', which already had a name registered when it was defined in another scope. Line 7 Position 40.
    

    איפה הטעות?

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

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

      לא יודע מה השגיאה שהוא נותן, אבל זה לא אמור לעבוד ככה...
      מנין לך כל המעניין הזה? x:Class לא יכול להיות מיושם על שום דבר חוץ מWindow וכדומה (כל דבר שלא מתארח).
      בדרך כלל ובדרך הטבע אין לך סיבה להצטרך למחלקה עם XAML.
      אם אתה רוצה טאב קונטרול עם פונקציונליות אחרת ברמה הלוגית (לא בתצוגה, וגם לא באירועים חוזרים על עצמם וכיוצא),
      אתה עושה מחלקה (ללא XAML!) כמו שהראית בפוסט שמכילה את ההצהרה על הירושה מהפקד שאותו אתה רוצה להמשיך (לפקד חדש לגמרי עליך לירש מUIElement).
      בXAML אתה פשוט מתייחס למחלקה החדשה במקום לפקד קיים. זהו.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

              מה עושים ?

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

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

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

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

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