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

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

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

window template WPF

מתוזמן נעוץ נעול הועבר ארכיון code613m
25 פוסטים 3 כותבים 1.1k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מחובר
    dovidD מחובר
    dovid ניהול
    כתב ב נערך לאחרונה על ידי
    #11

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

    פורסם במקור בפורום CODE613 ב18/03/2014 15:41 (+02:00)

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

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

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

      @שמואל

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

      אפשר גם אם XAML בצורה הבאה:

      מוסיפים לפרוייקט פקד חדש, זה ה XAML שלו:

      <UserControl x:Class="UserControl2"
                   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.RowDefinitions>
                  <RowDefinition Height="50"/>
                  <RowDefinition Height="*"/>
                  <RowDefinition Height="50"/>
              </Grid.RowDefinitions>
              <Border>
                  <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" >כותרת עליונה</TextBlock>
              </Border>
              <Grid Grid.Row="1" Name="Grid1">
      
              </Grid>
              <Border Grid.Row="2" >
                  <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" >כותרת תחתונה</TextBlock>
              </Border>
          </Grid>
      </UserControl>
      

      וזה הקוד:

      Public Class UserControl1
          Inherits UserControl
      
          Dim UC As New UserControl2
          Public Sub New()
              Me.Content = UC
          End Sub
      
          Private _mainGrid As Grid
          Public Property mainGrid() As Grid
              Get
                  Return _mainGrid
              End Get
              Set(value As Grid)
                  _mainGrid = value
                  UC.Grid1.Children.Add(_mainGrid)
                  Grid.SetRow(_mainGrid, 1)
              End Set
          End Property
      
      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="350"
              Width="525" xmlns:my="clr-namespace:test">
          <my:UserControl1 x:Name="UserControl11" >
              <my:UserControl1.mainGrid>
                  <Grid Name="Grid">
                      <Button Margin="39,40,61,51" Name="Button">לחצן</Button>
                  </Grid>
              </my:UserControl1.mainGrid>
          </my:UserControl1>
      </Window>
      

      כמו מקודם בתוך ה mainGrid אתה יוכל להכניס מה שתרצה.
      [שימו לב! יש פה טריק שבעזרתו אפשר לעשות UserControl עם XAML וגם להכניס לתוכו פקדים עם שמות - בעיה שהועלת כאן בפורום בעבר וגם בכמה מקומות ברשת ולא נמצא לה פתרון.]

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

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

        אוי רחמים אפשר לדעת מה לא טוב בטמפלט שהלכת כה רחוק?
        ותאמין לי שהלכת רחוק.

        פורסם במקור בפורום CODE613 ב18/03/2014 19:57 (+02:00)

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

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

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

          זה מה שעשיתי עם הטמפלט:

          <Window x:Class="Window1"
              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
              Title="Window1" Height="300" Width="300" Style="{StaticResource WindowTemplate}">
              <Grid>
                 
              </Grid>
          </Window>
          

          והתוצאה בזמן ריצה ... חלון שחור !

          פורסם במקור בפורום CODE613 ב18/03/2014 20:04 (+02:00)

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

            @רחמים

            והתוצאה בזמן ריצה ... חלון שחור !

            יאהווו!! ולכן עבדת כ"כ קשה! אז קבל שתי אפשרויות: או קבע צבע רקע לאלמנט הראשי בטמפלט (בורדר או גריד), או אפשרות מרתקת יותר קבע את שני הערכים האלו: WindowStyle="None" AllowsTransparency="True" בסטייל או בחלון.

            פורסם במקור בפורום CODE613 ב18/03/2014 20:24 (+02:00)

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

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

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

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

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

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

                @רחמים

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

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

                פורסם במקור בפורום CODE613 ב18/03/2014 22:14 (+02:00)

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

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

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

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

                  פורסם במקור בפורום CODE613 ב18/03/2014 22:27 (+02:00)

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

                    @דוד ל.ט.

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

                    תכל'ס אצלי עובד רק בזמן עיצוב ולא בזמן ריצה

                    @דוד ל.ט.

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

                    בלית ברירה אעשה כך אבל זה לא הדרך למסמכי xaml ארוכים ומייגעים
                    תאר לך גם 10 חלונות ויותר וכל שינוי תרוץ לעדכן בכולם

                    פורסם במקור בפורום CODE613 ב18/03/2014 23:06 (+02:00)

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

                      @שמואל

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

                      תכל'ס אצלי עובד רק בזמן עיצוב ולא בזמן ריצה

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

                      @שמואל

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

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

                      בלית ברירה אעשה כך אבל זה לא הדרך למסמכי xaml ארוכים ומייגעים
                      תאר לך גם 10 חלונות ויותר וכל שינוי תרוץ לעדכן בכולם

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

                      פורסם במקור בפורום CODE613 ב19/03/2014 11:10 (+02:00)

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

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

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

                        WpfApplication6.rarמצורף קוד בסיסי מישהוא יכול לתת את הדעת למה זה לא עובד לי?
                        תודה רבה

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

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

                          תחליף את השורה הזאת

                          Template="{Binding Mode=OneWay, Source={StaticResource myWindowStyle}}"
                          

                          בזאת:

                          Style="{StaticResource myWindowStyle}"
                          

                          פורסם במקור בפורום CODE613 ב19/03/2014 11:53 (+02:00)

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

                            קודם כל זה חידוש גדול בשבילי

                            <AdornerDecorator Grid.Row="1">
                                                                <ContentPresenter/>
                             </AdornerDecorator>
                            

                            דבר שני
                            @דוד ל.ט.

                            @רחמים

                            והתוצאה בזמן ריצה ... חלון שחור !

                            יאהווו!! ולכן עבדת כ"כ קשה! אז קבל שתי אפשרויות: או קבע צבע רקע לאלמנט הראשי בטמפלט (בורדר או גריד), או אפשרות מרתקת יותר קבע את שני הערכים האלו: WindowStyle="None" AllowsTransparency="True" בסטייל או בחלון.

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

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

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

                              לא הבנת כנראה לא כוונתי, התכוונתי לשנות את הטמפלט שהעליתי.
                              הנה ככה למשל:

                              <Style x:Key="WinStyle" TargetType="{x:Type Window}">
                                  <Setter Property="Template">
                                      <Setter.Value>
                                          <ControlTemplate TargetType="{x:Type Window}">
                                              <Grid Background="White">
                                                  <Grid.RowDefinitions>
                                                      <RowDefinition Height="50"/>
                                                      <RowDefinition Height="*"/>
                                                      <RowDefinition Height="50"/>
                                                  </Grid.RowDefinitions>
                                                  <Border  >
                                                      <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="{TemplateBinding Title}" />
                                                  </Border>
                                                  <AdornerDecorator Grid.Row="1">
                                                      <ContentPresenter/>
                                                  </AdornerDecorator>
                                                  <Border Grid.Row="2" >
                                                      <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" >כותרת תחתונה</TextBlock>
                                                  </Border>
                                              </Grid>
                                          </ControlTemplate>
                                      </Setter.Value>
                                  </Setter>
                              </Style>
                              

                              אגב הAdornerDecorator אני גם לא כ"כ מכיר, אני סה"כ העתקתי מהטמפלט שהVS יוצר.

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

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

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

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

                                תודה רבה

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

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

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

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

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